在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。...如:
>>> fact(1000)
Traceback (most recent call last):
File "", line 1, in
File "<stdin...print x, y
...
1 1
2 4
3 9
列表生成式ListComprehensions
>>> range(1, 11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>...中,这种一边循环一边计算的机制,称为生成器(Generator)。...>>> L = [x * x for x inrange(10)]#列表生成式的[]改成(),就创建了一个generator
>>> L
[0, 1, 4, 9, 16, 25, 36, 49, 64,