python-易错知识(一)

一.python的三种文件形式
源代码: .py的文件(./–.py或者python –.py)
字节代码: 经过编译之后生成的扩展名为”pyc”的文件名;

import py_compile
py_compile.compile('Helloword.py')
注:Helloword.py为需要编译的文件
python Helloword2.pyc

优化代码:经过优化的源文件,扩展名为”.pyo”
python -O -m py_compile hello.py
二.运算符和表达式
1.实数除法:”/”
整数除法:”//”
求余:%
x的y次方:x**y

>>> 5.6/2
2.8
>>> 5.6//2
2.0
>>> 3**2
9
>>> -20/8
-2.5
>>> -20//8
-3

2.逻辑运算符
逻辑与’and’
逻辑或 ‘or’
逻辑非 ‘not’

>>> 1<3 and 2>3
False
>>> not 1<3
False
>>> 1<3 or 2>4
True

优先级问题:下图由上到下,依次增大,优先级依次增高
python-易错知识(一)_第1张图片
三.键盘的输入与输出
python中包含两个raw_input()和input();
但是python3中目前input()可以用

a=input()
print(a)
a=int(input("please input num1:"))
b=int(input("num2:"))

print('请输入你要转换的温度')
F=int(input())
C=5/9*(F-32)
print(C)

四.python的数据类型
Number(数字)/String(字符串)/List(列表)/Tuple(元组)/Sets(集合)/Dictionary(字典)
type()查看数据类型,python中的数据类型不需要提前声明
1.Number类型
整数int :表示的范围为-2147483648到2147483647
在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。

float浮点型
>>> f1=12
>>> type(f1)
<class 'int'>
>>> f1=12.0
>>> type(f1)
<class 'float'>
复数类型:complex比如抛物线的运算
>>> type(num)
<class 'complex'>

2.String类型

1、表示形式(' '/" "/"""  """)
>>> a=123
>>> star="123"#字符串类型
>>> str1='a'
>>> str2="b"
>>> str3="""v"""
没有区别,但是单引号的中间不能再用单引号,比如:“let's go” 此处只能用双引号,或者使用转义符:let's "go"
>>> say="let's \"go\""
>>> say
'let\'s "go"'
>>> print(say)
let's "go"
三重引号
>>> mail="""tom:
i
goof
ff
"""
控制字符串换行
>>> mail='tom:\n hello\n i am jvav'
>>> print(mail)
tom:
 hello
 i am jvav
 >>> mail
'tom:\ni\ngoof\nff\n'
>>> print(mail)
tom:
i
goof
ff

序列类型数据:字符串,列表,数组
序列表示方法:() []
序列的两个主要特点是索引操作符(特定)和切片操作符(一部分)
索引可以是负数,从尾部开始计算
切片使用[],冒号用来分割
序列的基本操作
1.len()  求序列的长度
2.+      连接两个序列
3.*      序列重复出现
4.in     判断是否在序列中
5.max()  返回最大值
6.min()  返回最小值
>>> str1='abcdfrds'
>>> len(a)
9
>>> str1+'z'
'abcdfrdsz'
>>> 'z'*2
'zz'
>>> 'x' in str1
False
>>> max(str1)
's'
>>> min(str1)
'a'
7.cmp(a,b)比较两个序列值是否相同,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。
此处的cmp在python3中已经没有了。python3中需要导入operator模块
lt(a, b) 相当于 a < b
le(a,b) 相当于 a <= b
eq(a,b) 相当于 a == b
ne(a,b) 相当于 a != b
gt(a,b) 相当于 a > b
ge(a, b)相当于 a>= b
函数的返回值不是布尔哦。这点需要注意,还是跟cmp一样返回的是数值哦。
>>> import operator
>>> operator.eq(str1,str2)
False
字符串的处理方法:索引和切片
索引:
切片:[起始值:终点值:步长]      注意:终点值不包括结束点;索引还可以是负数,步长可以控制方向,可以重后往前取数
>>> a[0]
'a'
>>> a[0]+a[1]
'ab'
>>> a[0:5:3]
'ac'
>>> a[::2]
'avcfh'
>>> a[-2:-4:-1]#步长可以控制方向,可以重后往前取数
'gf

3.List类型:数据可变

列表可以放在元组中,元组中也可以存放列表
列表(list):是可变类型的数据
表现形式:[];其中可以是字符串,
列表的操作:
取值:切片和索引;list[]
添加:list.append()
删除:del(list[])
修改:list[]=x
查找:var in list

>>> a=["a",123,"456"]
>>> del(a[0])
>>> a
[123, '456']
>>> a.remove('123')#删除第一个出现123的值

4.元组类型(tuple):数据不可以改变

1.元组(tuple):元组和列表十分相似,但是元组和字符串一样是不可变的
>>> str='12345'
>>> id(str)
2397410817448
>>> str='12346'
>>> id(str)
2397410817616
在内存空间是改变的
2.元组的表示方式:()
好处:存储一系列的值,保存用户定义的函数,存储安全性较高的固定的值
3.创建元组
空元组,单一元素元组:(2,)需要加一个逗号,否则不是tuple类型,一般元组
>>> userinfo=('mike','20')
>>> print(userinfo)
('mike', '20')
>>> len(userinfo)
2
>>> userinfo[0]
'mike'
>>> t1=()
>>> t2=(2,)
4.元组的操作:和字符串操作(序列操作)一样;元组的值不可改变
>>> userinfo[1]+1
Traceback (most recent call last):
  File "", line 1, in <module>
    userinfo[1]+1
TypeError: Can't convert 'int' object to str implicitly
此处不可以更改
>>> a,b,c=(1,2,3)
>>> a,b,c
(1, 2, 3)

5.集合类型
6.字典类型(dict)

字典--映射
(1)映射的关系
>>> t=['name','age','gender']
>>> t2=['milo',30,'male']
>>> list(zip(t,t2))
[('name', 'milo'), ('age', 30), ('gender', 'male')]
>>> zip(t,t2)
0x0000026A85069D88>
python2.x中使用zip(),python3.x中使用的是list(zip())
在python 3.0中zip()是可迭代对象,使用时必须将其包含在一个list中,方便一次性显示出所有结果

(2)字典的表现形式: {}
(3)字典是python中唯一的映射类型(哈希表)
  字典对象是可变的,但是字典的键必须使用不可变对象,并且一个字典中可以使用不同类型的键值
  keys()或者values()返回键列表或者列表
  items()返回包含键值对的元组。
>>> dic={0:0,1:1,2:2}
>>> dic[0]
0
>>> dic1={'name':'张三','age':'25','gender':'male'}
>>> dic1['name']
'张三'
(4)使用工厂的方法dict()生成字典
字典的遍历
>>> for k in dic1:
    print(k)


age
gender
name
>>> for k in dic1:
    dic1[k]


'25'
'male'
'张三'
(5)字典的更新和删除
更新:用键值访问更新;内建的update()方法可以将整个字典的内容拷贝到另一个字典中。
>>> dic1['tel']=10086
>>> dic1
{'age': '25', 'gender': 'male', 'tel': 10086, 'name': '张三'}#无序
>>> dic1
#删除
del(dic1['tel'])
dic1.pop('a')删除并且返回键为'a'的元素
dic1.clear()删除字典所有元素
del dic1删除整个字典
>>> dic1.pop('name')
'张三'
>>> dic1
{'age': '25', 'gender': 'male'}
(6)字典的内置函数:type(),str(),cmp
工厂函数dict():
>>> dict(x=1,y=2)
{'y': 2, 'x': 1} 

>>> dic
{0: 0, 1: 1, 2: 2}
>>> dic.get(3)
获取不到序列为3的值
>>> dic.get(3,'error')
'error'
>>> 

python-易错知识(一)_第2张图片

你可能感兴趣的:(python,python)