# if-else语句 if condition: pass# 占位用关键字,不执行任何操作 elif condition: pass else: pass # 范围for for x in l: pass # 可用range(10)生成0-9的列表 # while while condition: psss
[x * x for x inrange(1, 11)] # 1x1,2x2...10x10 [x * x for x inrange(1, 11) if x % 2 == 0] # 2x2,4x4...10x10 [m + n for m in'ABC'for n in'DEF'] # ABC与DEF的全排列 # 当if出现在for后面时,不可带else # 当if出现在fot前面时,必须带else
生成器
生成器仅存储一个生成方法而不是具体对象,有肋于节省空间。
方法1: 用(express)生成一个生成器(generator)
1 2 3
g = (x * x for x inrange(10)) for n in g: print(n)
# 输出斐波那契数列的函数如下 # a, b = b, a + b => a, b = (b, a + b) => a = b b = a + b(a与b的值同时改变) deffib(max): n, a, b = 0, 0, 1 while n < max: print(b) a, b = b, a + b n = n + 1 return'done'
#把上述函数改成generator, 仅需将print(b)换成yield b deffib(max): n, a, b = 0, 0, 1 while n < max: yield b a, b = b, a + b n = n + 1 return'done'