函数:
__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('请重新输入!')
结果:

来源:https://www.cnblogs.com/liyuchao/p/12368491.html
