用import关键字导入模块的几种方式:
#python是自解释的,不必多说,代码本身就是人可读的 import xxx from xxx import xxx from xxx import xx1,xx2,xx3 from xxx import * import xxx as xxx from xxx import xxx as xxx
序列解包赋值:
x,y,z = 1,2,3 #右侧1,2,3实际是一个(1,2,3)的tuple,然后解包出来再分别赋值 x,y = y,x #同理,交换赋值
if和布尔:
#True False 实际就是1 0 同样可拿来运算 True + 1 == 2 False - 1 == -1 #bool(xx): #将表达式转换为布尔值 '''注意:'''#虽然[]与{}都是假值,但是他俩之间直接比较是不相等的 [] != {} #这样才相等 bool([]) == bool({}) == False #比较运算符: x is y #x与y是同一个对象引用 x is not y #同上一个道理 #is 关键字比较的是同一性,==比较的是相等性 #可以连续比较: 1<2<3 == 1<2 and 2<3 #布尔运算符: and or not #模拟bool:a?b的三元运算符 #方法1 (bool and [a] or [b])[0] #首先知道,[a] [b]都是真值 #当bool为True时,and 运算结果为[a],or运算结果也为[a],再[0]取出a #当bool为False时,and结果为False,or结果取决于[b],再[0]取出b #方法2 a if b else c #b 为1时,则a 否则c
循环:
#for 多用于序列或可迭代对象 range(a, b): #包含下限不含上限,生成列表 zip(list1, list2); #将两个序列压缩在一起,形如:[(list1[1],list2[1]),(list1[2],list2[2])] #长度不同时取短的那个 while True/if break: #很好用,代码整洁又没有重复 for/else: for n in range(10): if xxx: break else: #dosomething
强调一个内建函数:
#强调一个内建函数 getattr l = [1,2,3,4] l.pop() func = getattr(l, 'pop') func() #上面两小段代码是一样的效果 都是弹出最后的元素 #getattr字面就是返回属性,返回 参数 l 的 pop 属性