函数:
__doc__:显示函数文档:也可使用help()
函数中无法直接修改全局变量,需要对变量定义为global:
global适用于函数内部修改全局变量的值
nonlocal适用于嵌套函数中内部函数修改外部变量的值
使用MyFunction1 时返回的是MyFunction1 这个函数;
使用MyFunction1() 时返回的是MyFunction1 () 执行后的返回值,如果MyFunction1 ()函数没有返回值则返回值为None,
lambda匿名函数:使用过后被清除,没有名字
fileter()函数:用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。
最终得出结果为true的新列表:
递归算法:
递归算法求阶乘:
1 ###递归函数求阶乘 2 def jiecheng(number): 3 if(number == 1): 4 return 1 5 else: 6 return number*jiecheng(number-1) 7 number = int(input('请输入一个正整数:')) 8 print(number,'的阶乘为:',jiecheng(number))
结果:
递归求斐波那契数列:
一个数列,第一项为1,第二项为1,第三项开始,每一项都等于前两项的和。
1 ##递归求斐波那契数列 2 def number(month): 3 if month == 1: 4 return 1 5 elif month == 2: 6 return 1 7 else: 8 return number(month-1)+number(month-2) 9 month = int(input('请输入一个正整数:')) 10 print(month,'个月后兔子数量为:',number(month))
结果:
递归求汉诺塔问题:
有三根杆(编号x、y、z),在x杆自下而上、由大到小按顺序放置n个金盘。游戏的目标:把x杆上的金盘全部移到z杆上,并仍保持原有顺序叠好。
1 ###递归求汉诺塔问题 2 #注:hanoi(盘子数量,第一根柱子,第二根柱子,第三根柱子) 3 def hanoi(num,x,y,z): 4 #如果只有一个盘子 5 if num == 1: 6 print(x,'-->',z) 7 else: 8 #将n-1个从x-->y 9 hanoi(num-1,x,z,y) 10 #将最后一个由x-->z 11 print(x,'-->',z) 12 #将y-->z 13 hanoi(num-1,y,x,z) 14 num = int(input('请输入一个正整数:')) 15 if num>0: 16 hanoi(num,'x','y','z') 17 else: 18 print('请重新输入!')
结果: