函数设计概念
函数设计中的指导方针:
- 耦合性:在输入时使用参数,输出时使用 return语句;
- 耦合性:只在真正必要的情况下使用全局变量;
- 耦合性:不要改变可变类型的参数,除非调用者希望这样做;
- 内聚性:每一个函数都应该有一个单一的,统一的目标;
- 携合性:避免直接改变其他模块文件中的变量;
不过通常来讲,我们尽可能地把函数和其他编程组件对外部的依赖性最小化。函数的自包含性越好,它就越容易被理解、复用和修改;
递归函数
python中的递归函数,即直接或间接地调用自身以进行循环的函数;
用递归求和
>>> def mysum(L):
... if not L:
... return 0
... else:
... return L[0] + mysum(L[1:])
...
>>> mysum([1, 2, 3, 4, 5])
15
直接理解上面的代码可能有些困难,帮助理解我们可以加入打印语句:
>>> def mysum(L):
... print(L)
... if not L:
... return 0
... else:
... return L[0] + mysum(L[1:])
...
>>> mysum([1, 2, 3, 4, 5])
[1, 2, 3, 4, 5]
[2, 3, 4, 5]
[3, 4, 5]
[4, 5]
[5]
[]
15
编码替代方案
我们可以使用python的三元if/else表达式,化简上述代码:
def mysum(<