1.双分支结构
value1 if condition else value2
当表达式conditon的值与true等价时,表达式的值为value1,否则表达式为value2
这个表达式同时具有惰性求值的特点
(惰性求值:
Python 惰性求值,函数式编程高效,原因之一是将计算推迟到需要的时候进行。惰性(也称“非严格”)求值非常重要,Python内置了对它的支持。
Python中,逻辑运算符and、or和if-then-else都是非严格的。有时也称之为“短路”运算符,因为它们不需要计算全部参数就能得到最终结果。)
2.python序列
列表 list[]
元组 tuple() 不可变 不允许新增和删除元素
字典 dict{} 不有序
集合 set{} 元素形式要求为必须可哈希
3.del删除整个列表 如果列表对象的指向的值不再有其他对象指向,python同时删除该值
4.使用列表对象append()方法在当前表尾部追加元素,原地修改列表
5.python采用的是基于值的自动内存管理方式,为对象修改值的时候,并不是真的直接修改变量,而是使得变量指向新的值,这对python所有类型的变量都是一样的
6.列表中包含的是元素值的引用,而不是直接包含的元素值
7.extend():可以将另一个迭代对象的所有元素添加至元素的尾部
insert():将元素添加至列表的指定位置
a.insert(3,6)#在下表为3的位置插入元素6
8.使用乘法来扩展列表对象,将列表与整数相乘,生成一个新列表,新列表是原了列表中元素的重复
9.remove():方法删除首次出现的元素,如果不存在该元素则抛出异常
10.index():方法获取指定元素首次出现的小标,如果列表对象中不存在该元素,则抛出异常
11.使用in关键字判断一个值是否存在于列表中,返回结果为“True”和“False”。
>>>bList=[[1],[2]]
>>>3 in bList
False
12.ls[i:j:k]=lt 用列表lt替换列表ls中di6i到j以k为步的数据
del ls[i:j:k] 删除列表ls第i到j以k为步的数据
eg:如果尝试将大小为3的序列分配给大小为5的扩展片会发生报错
13.浅复制指的是生成一个新列表,并且把原列表中所有元素的引用都复制到新列表中
14.copy库中deepcopy()函数实现深复制
所谓深复制,是指雨涵列表的元素进行递归,把所有的值都复制到新列表中,对嵌套的子列表不再是复制引用
15.shuffle()方法将序列的所有元素随机排序
16.内置函数reverse()和reversed()的区别是是否返回一个新列表
17.zip()函数返回可迭代的zip对象
alist=[1,2]
bLIST=[3,4]
>>>zip(a,b)
[(1,3),(2,4)]
18.列表推导式
语法形式为[expression for expr1 in sequence1 if condition1
for expr2 in sequence2 if condition2
......
for exprn in sequencen if conditionn
]
19.元组的优点
速度比列表快
对需要的改变的数据进行了“写保护”,更加地安全
元组可用作字典的键值,也可以作为集合的元素
20.生成器推导式:生成器推导式的结果是一个生成器对象,生成器对象具有惰性求值的特点,指在需要时生成新的元素,空间占用小;无论有何种方式访问生成器对象,都无法再次访问已访问过的对象
21.字典是无序可变的序列,字典中的键可以为任意不可变的数据,globals()返回当前作用域的所有全局变量和值的字典;locals()返回包含当前作用域内所有局部变量和值的字典;以键作为下标可以读取字典元素,若不存在则抛出异常
22.python内置字典是无序的,如果需要一个可以记住元素插入顺序的字典,可以使用collections.OrderedDict
23.集合:集合是无序,可变的序列,使用一个大括号界定,元素不可重复,同一个集合中每个元素都是唯一的。集合中只能包含数字,字符串,元组等不可变类型
24.集合的常用函数和方法:
25.集合类型的10个操作符
26.堆:堆是非线性的树形结构,包括最大堆和最小堆。heapq库中的堆默认是最小堆
27.异常处理:try-except语句
基本语法格式: try:
<语句块1>
except<异常类型>:
<语句块2>
此外try-except语法可支持多个except语句,或者可以与else和finally保留字配合使用
28.python中的函数和自定义对象的成员是随时可以发生改变的,可以为函数和自定义对象动态增加新成员,在函数外部也可以直接访问函数的成员
29.可变长度参数:
注意的是,集中不同类型的变长参数可以同时使用,但是不建议这么做
30.如果函数实参是字典,可以在前面加两个星号进行解包,等价于关键参数
31.关键参数:
通过关键参数,实参顺序可以和形参顺序不一致,但不影响传递结果,避免了用户需要牢记位置参数顺序的麻烦
32.内置函数Map:
内置函数map()可以将一个函数作用到一个序列或者迭代器对象上
33.内置函数filter:
内置函数filter将一个函数作用到一个序列上,返回该序列中使得该函数返回值为True的那些元素组成的filter对象。
34.生成器函数:
35.字符串常用函数:
str():函数返回一个用户易于读取的表达形式,返回object的字符串版本,如果未提供object,则返回空字符串。
repr():产生一个解释器易于理解的表达形式,返回包含一个对象可打印表示形式的字符串
Eval():eval()函数用来执行一个字符串表达式,并返回表达式的值