1. 作用
- 最大化的代码重用:建设复制、粘贴
- 最小化的代码冗余:减少重复代码
- 流程分解:将做一件事情分解为相应的步骤,不同步骤封装在不同的函数中。
2. 定义
def 函数名(可选的参数列表): 函数体
函数名:命名需要符合Python标识符规范:开头不能为数字,只能包含字母、数字、下划线。
可选的参数列表:
- 一个参数都不需要,括号内什么都不填
- 位置参数:传递一个或多个参数,依次排列下去
- 关键字参数:通过使用 “名=值” 的方式来传递参数
- 变长的位置参数:*args,在一个变量名前面加上"*"号,可以将args列表中的每一项作为一个参数进行传递
- 变长的关键字参数:**kwargs,在一个变量名前面加上" ** ",可以将kwargs字典中的每一项作为一个参数进行传递
- 关键字参数必须在位置参数之后进行传递。
函数体:
- 空函数体,使用 pass 语句进行设置
- 其他内容按照正常逻辑编写Python代码,构成函数体。
2.1. 设计的概念
1. def : def 是语句中的一种,按照语句固有的格式来定义函数 2. def 创建了一个对象,并将对象赋值给一个变量名 3. lambda 创建了一个对象,但将其作为结果返回 4. return 将一个结果对象发送给调用者 5. yield 向调用者发回一个结果对象,但是记住它离开的地方 6. global 声明了一个模块级的变量并被赋值 7. nonlocal 声明了将要赋值的一个封闭的函数变量 8. 函数是通过赋值(对象引用)传递的 9. 参数、返回值以及变量并不是声明:Python没有类型约束
3. 作用域
TBD
4. 函数参数
TBD
5. 高级话题
TBD
6. 迭代和解析
TBD.