标识符
- 首字符是字母或下划线
- 其余可以是字母、下划线、数字
- 大小写敏感(PI和pi是不同的标识符)
- 关键字 不 可作为标识符
关键字:
import keyword
print(keyword.kwlist)
#输出:
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
表达式
用运算符(除了赋值运算符)连接各种类型数据的式子就是表达式
- 运算符有优先级顺序
- 表达式必须有运算结果
- 单个常量或变量可以看作是最简单的表达式 例如:3,‘a’
数字
- Python支持任意大的数字,具体可以大到什么程度仅受内存大小的限制。
- 由于精度的问题,对于实数运算可能会有一定的误差,应尽量避免在实数之间直接进行相等性测试,而是应该以二者之差的绝对值是否足够小作为两个实数是否相等的依据。
- 在数字的算术运算表达式求值时会进行隐式的类型转换
>>> 0.4 - 0.1 == 0.3 #应尽量避免直接比较两个实数是否相等
False
>>> abs(0.4-0.1 - 0.3) < 1e-6 #这里1e-6表示10的-6次方
True
切片
[N,M] 不包括M
k表示步进,缺省为1
当k<0时,a[i,j,k]表示从a[i]开始(含a[i]),到a[j]结束(不含a[j]),且顺序是从后向前进行遍历,返回遍历结果。
i缺省时,默认为-1. j缺省时,默认为-len(a)-1
当k>0时,a[i,j,k]表示从a[i]开始(含a[i]),到a[j]结束(不含a[j]),且顺序是从前向后进行遍历,返回遍历结果。
当i缺省时,默认为0
当j缺省时,默认为len(alist)
k的正负值的改变只是改变了遍历的方向而已
赋值语句
a,b = b,a
可以实现a和b的值互换
同样a,b ,c= c,b,a
也是可以的
Round
返回浮点数的四舍五入值
[1] in [1,2,3,4]
False
[1] in [[1],2,3,4]
True
区间
- range 左开右闭
字符串 不可变类型
#考的是多分支情况下,执行第一个满足条件的代码,然后就跳出了,而不会顺序执行后续的每个分支
惰性求值
reversed zip map filter enumerate 都具有惰性求值
strip()函数注意的地方
str=”***python***”
str.strip(‘*’)
‘python’
#会把首尾重复的都删除掉
理解 append 与 extend 方法的区别
append 表示把某个数据当作新元素追加到列表的最后面,它的参数可以是任意对象:
extend 的参数必须是可迭代对象,表示把该对象里面所有元素逐个地追加到列表的后面。
深拷贝 浅拷贝
import copy
List = [“张三”,”李四”,[”大王五”,”小王五”]]
#等号:列表对象地址的拷贝,并没有实现拷贝数据
List1 = List
#浅拷贝:拷贝最外层的数据,嵌套的结构依然是地址引用
List2 = List.copy()
#深拷贝:拷贝数据
List3=copy.deepcopy(List)
print(“List:”,List)
print(“等号:”,List1)
print(“浅拷贝:”,List2)
print(“深拷贝:”,List3)
输出结果:
List:['张三', '李四', ['大王五', '小王五']]
等号:['张三', '李四', ['大王五', '小王五']]
浅拷贝:['张三', '李四', ['大王五', '小王五']]
深拷贝:['张三', '李四', ['大王五', '小王五']]
如何对列表进行排序
列表排序有两种方式,一种是列表自带的方法sort(),注意:sort()是原地操作;一种是内建函数sorted()
,返回新的列表。复杂的数据类型可通过指定key参数进行排序。
remove 移除某个元素,而且只能移除第一次出现的元素。
del关键字 根据指定的位置移除某元素;
pop 方法可以返回移除的元素
tuple没有append()、insert()方法,也不能赋值成另外的元素,其他获取方法和list是一样的。
因为tuple不可变,所以代码更安全,如有可能,尽量使用tuple代替list。
字典
字典的迭代,dic.items()可查看字典的每一对键值对,注意:如果直接对字典对象进行迭
代或者遍历时默认是遍历字典的“键”:
使用 dic.clear()方法删除字典
aStock = {} 只删除了引用,并没有清空字典
集合
如果原序列或可迭代对象中有可变(不可哈希)的值,无法转换成为集合,抛出异常
增加集合元素
集合对象的 add()方法可以增加新元素,如果该元素已存在则忽略该操作,不会抛出异常;
update()方法合并另外一个集合中的元素到当前集合中,并自动去除重复元素。
集合具有无序性,只能随机删,不能指定索引
.join返回的是str
.join接收的也只能是str类型
()
元组
[ ]
列表
{ }
字典
index(,start,end)
字典.get( ,default)
若不存在 返回默认值