-
使用递归函数需要注意防止栈溢出。在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。可以试试计算 fact(10000)。
查看全部 -
def fact(n): if n==1: return 1 return n * fact(n - 1)
查看全部 -
同样可以在列表生成式中迭代dict
实现更加复杂的功能
查看全部 -
列表生成式
[i for i in range(1,101)]
查看全部 -
items 和 iteritems都可以同时遍历dict的key和value
区别与values相同
查看全部 -
values和itervalues都可以配合迭代dict的value
区别是values生成一个包含value的list
而itervalues则是在迭代过程中依次取出values,节省了生成list的内存
查看全部 -
希望在迭代中,拿到有序集合中元素的索引
可以使用for index,name in enumerate()
其实是enumerate把集合变成了(0,xxx),(1,xxx)的形式
查看全部 -
for in是一种迭代操作
可以依次取出对象的每个元素
查看全部 -
对于字符串,同样可以使用切片来进行操作
查看全部 -
同样支持倒序切片,倒数
查看全部 -
list可以切片取
[0:5]
[:5]
[0:]
[::2]每2个元素取一个,隔一个取一个
查看全部 -
在语法上,返回一个tuple可以省略括号,而多个变量可以同时接收一个tuple,按位置赋给对应的值,所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。
查看全部 -
*args可变参数,可以接受多个参数,按照元组传给函数
查看全部 -
函数可以有默认参数值,用来简化参数输入
默认参数需要在必需参数后面
查看全部 -
递归函数,多次嵌套调用自身函数
注意栈溢出问题
查看全部
举报