1、尾递归
def tail_recursive(n, total=1):
if n == 1:
return total
else:
return tail_recursive(n - 1, total * n)
print(tail_recursive(6))
最初:tail_recursive(6,1)
1 tail_recursive(5,6)
2 tail_recursive(4,30)
3 tail_recursive(3,120)
4 tail_recursive(2,360)
6 tail_recursive(1,720)
7 1
2、递归
def fact(n):
if n==1 :
return 1
return n * fact(n - 1)
print(fact(100))
# 5*fact(4)
# 5*4*fact(3)
# 5*4*3*fact(2)
print(5*4*3*2*1)
3、列表生成式
print(list(range(1,100)))
print([i * i for i in range(200) if i%2==0])
print([x + y for x in 'abc' for y in 'cde'])
4、生成器generator
要创建一个generator,有很多种方法。第一种方法很简单,只要把一个列表生成式的[]改成(),就创建了一个generator: