1. 建立函数数据结构
def 函数名(参数):ide
函数体函数
return 值spa
2. 文档化函数递归
def square(x):作用域
'calculate the square of the number'文档
return x*x字符串
给函数写文档让别人容易理解,能够加入注释(以#开头),或者直接写上文档字符串it
文档字符串能够按照以下方式访问:class
square.__doc__
'calculate the square of the number' 或者用help内建函数
help(square)
3. 参数是能够改变的。
当可变的数据结构作参数时,参数是能够改变的,好比列表。
字符串,数字和元组是不可变的,既没法被修改,也就是只能用新的值覆盖,这类作参数是不能被修改的。
4. 关键字参数和默认值
位置参数:跟位置有关系,位置不可变,可是当参数不少的时候,参数的顺序是很难记住的,因此须要使用
关键字参数:就是提供参数的名字,这样一来参数顺序就没有影响了,关键字参数最厉害的地方就是提供参数的默认值,当有默认值的时候,你就能够只提供一些或者所有参数。
5. 收集参数
def print_params(*params)
print params
这参数中的星号的意思就是“收集其他位置的参数”,而后将值放置在同一个元组中,若是参数中有两个星号,则返回的是参数的字典。
6. 参数收集的逆过程
调用函数时,使用星号或者双星号来传递元组或者字典的值
实验一:
params=(1,2)
def add(x,y)
return x+y
add(*params)
则输出3
字典的调用也是相似的。
7. 做用域
局部变量:函数内的变量
全局变量:
在函数内部:globe x 声明一个全局变量,注意:只有在须要的时候才使用全局变量;若是在函数内部访问全局变量,并且只是读取全局变量,是没有问题的。
8. 递归
递归就是函数本身调用本身。