任务:
1.1 函数定义
1.2 函数的参数
1.3 函数的默认参数
1.4 函数的变量
1.5 函数的返回值
1.6 多类型传值和冗余参数
1.7 函数的递归调用
笔记:
函数定义
函数就是完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字。
可以通过函数名在程序的不同地方多次执行(这通常叫函数调用)。
预定义函数
可以直接使用
自定义函数
用户自己编写
为什么使用函数
降低编程难度
- 通常将一个复杂的大问题分解成一系列的小问题,然后将小问题划分成更小的问题,当问题细化为足够简单时,我们就可以分而治之。各个小问题解决了,大问题就迎刃而解了。
代码重用
- 避免重复劳作,提供效率
函数的定义和调用
- def 函数名([参数列表]): //定义
- 函数名([参数列表]) //调用
函数的参数
形式参数和实际参数
- 在定义函数时,函数名后面括号中的变量名称叫做“形式参数”,或者称为“形参”
- 在调用函数时,函数名后面括号中的变量名称叫做“实际参数”,或者称为“实参”
缺省参数(默认参数)
def fun(x, y=100):
print x,y
fun(1,2)
fun(1)
函数的变量
局部变量和全局变量
- Python中的任何变量都有特定的作用域
- 在函数中定义的变量一般只能在该函数内部使用,这些只能在程序的特定部分使用的变量我们称之为局部变量
- 在一个文件顶部定义的变量可以供文件中的任何函数调用,这些可以为整个程序所使用的变量称为全局变量
global语句
- global 变量名
强制声明为全局变量
函数返回值
- 函数被调用后会返回一个指定的值
- 函数调用后默认返回None
- return 返回值
- 返回值可以是任意类型
- return执行后,函数终止
- return与print区别
多类型传值和冗余参数
向函数传元组和字典
处理多余实参
def fun(x,y,*args,**kwargs)
递归调用
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
print factorial(5)
递归的注意事项
必须有最后的默认结果
if n == 0
递归参数必须向默认结果收敛的:
factorial(n-1)