创建函数
定义函数用def
文档字符串
1、在函数体里的开头写上字符串,可以起到说明的作用
2、可以用函数名.__doc__的方式读取在函数开头加的字符串(双下划线)
3、内建的help()函数也能返回此信息
无返回值
当函数无返回值时,会自动返回None。return 的关键字可写可不写(但是最好写上,避免混乱)
函数
如果传参是个字符串,函数外定义的字符串,在函数里重新赋值后外部是不变的
但如果传参是一个列表则可以改变函数外的列表值
1、位置参数
固定顺序的参数就是位置参数
2、关键字参数
可以在实参上赋值
调用时参数必须和定义参数时的变量名一致
这样就会出现错误
关键字参数还可以在定义函数时赋值
定义时默认写了参数则调用时不必再写
位置参数和关键字参数联合使用时,要把位置参数放在前面
3、收集参数
1、在函数定义形参时,形参前加个*,在调用函数时就可以传入任意多个实参进去。
加了*的参数会作为元组来存放传入的数据
2、当收集参数和关键字参数混用时就不能省略关键字参数了,而且能重新赋值
变量参数
定义函数时形参前加**,调用函数时,可以已a=b的方式传入
最后以字典的方式存放数据
参数收集逆过程
???
作用域
略
全局变量
在函数里告诉定义了一个变量,用关键字 global 表示这是一个全局变量
返回值为x不行?????报错
函数嵌套函数
递归
有用的递归函数包含以下部分
1、当函数直接返回值时有基本实例
2、递归实例,包括一个或多个问题较小部分的递归调用
??