6.4.5反转过程
如何将参数收集为元组和字典已经讨论过了,但事实上,如果使用*和**的话,也可以执行相反的操作.
>>> def add(x,y): return x+y
>>> params=(1,2)
>>> add(*params)
3
可以使用同样的技术来处理字典
>>> def hello_3(greeting ='hello',name='world'):
print '%s, %s'%(greeting,name)
>>> params={'name':'daxiao','greeting':'i love'}
>>> hello_3(**params)
i love, daxiao
6.5作用域
与C一样,在函数内部定义的变量只在函数内部有效.
读取全局变量:
>>> def combine(temp):print temp+temp2
>>> temp2='b'
>>> combine('a')
ab
改变全局变量
>>> x=1
>>> def change():
global x
x+=1
>>> change()
>>> x
2
6.6递归
6.6.1 举例
斐波那契数列:
ef f(i):
if(i==1):
return 1
else:
if(i==2):
return 1
else:
return f(i-1)+f(i-2)
6.6.2 二元查找
略.
这章总体来说比较简单,毕竟都是之前学过的内容.过一遍即可
小结
抽象
函数定义
参数
作用域
递归
函数型编程