学习目标:
- 掌握无参数函数的定义和调用
- 掌握带参数函数的定义和调用,例如:普通参数、缺省参数、不定长参数
- 掌握return的使用,例如:中断函数、中断函数同时返回一个结果
- 知道函数调用的执行流程,例如:普通函数调用流程、嵌套调用流程
- 知道局部变量和全局变量的区别
- 知道函数内如何修改全局变量
01_函数的基本使用
学习目标:
- 知道函数的作用
- 掌握无参数函数的定义和调用
1.1 函数基本概念
- 所谓函数,就是把 具有独立功能的代码块 组织为一个整体,在需要的时候 调用
- 函数的使用包含两个步骤:
- 定义函数 —— 在函数中编写代码,实现功能
- 调用函数 —— 执行编写的代码
- 函数的作用:
- 提高代码编写效率, 代码重用
- 写一次函数代码块,后面使用的时候,只需要调用函数即可,无需重新编写函数代码块
函数定义
def foo():
print(" _ooOoo_ ")
print(" o8888888o ")
print(" 88 . 88 ")
print(" (| -_- |) ")
print(" O\\ = /O ")
print(" ____/`---'\\____ ")
print(" . ' \\| |// `. ")
print(" / \\||| : |||// \\ ")
print(" / _||||| -:- |||||- \\ ")
print(" | | \\\\\\ - /// | | ")
print(" | \\_| ''\\---/'' | | ")
print(" \\ .-\\__ `-` ___/-. / ")
print(" ___`. .' /--.--\\ `. . __ ")
print(" ."" '< `.___\\_<|>_/___.' >'"". ")
print(" | | : `- \\`.;`\\ _ /`;.`/ - ` : | | ")
print(" \\ \\ `-. \\_ __\\ /__ _/ .-` / / ")
print(" ======`-.____`-.___\\_____/___.-`____.-'====== ")
print(" `=---=' ")
print(" ")
print(" ............................................. ")
print(" 佛祖镇楼 BUG辟易 ")
print(" 佛曰: ")
print(" 写字楼里写字间,写字间里程序员; ")
print(" 程序人员写程序,又拿程序换酒钱。 ")
print(" 酒醒只在网上坐,酒醉还来网下眠; ")
print(" 酒醉酒醒日复日,网上网下年复年。 ")
print(" 但愿老死电脑间,不愿鞠躬老板前; ")
print(" 奔驰宝马贵者趣,公交自行程序员。 ")
print(" 别人笑我忒疯癫,我笑自己命太贱; ")
print(" 不见满街漂亮妹,哪个归得程序员?")
# 需要使用时,函数调用即可,无需重复编写函数体内容
foo()
print('其他代码')
# 需要使用时,函数调用即可,无需重复编写函数体内容
foo()
1.2 函数的定义和调用
1.2.1 函数的定义
定义函数的格式如下:
def 函数名():
函数内部的代码块
……
def
是英文define
的缩写- 函数名称 的命名应该 符合 标识符的命名规则
- 可以由 字母、下划线 和 数字 组成
- 不能以数字开头
- 不能与关键字重名
- 建议不要和类型同名
1.2.2 函数的调用
-
函数只是定义,不调用不会自动执行,用户看不到没有效果
-
函数调用的格式:
函数名字()
1.2.3 第一个函数演练
需求
-
编写一个打招呼
say_hello
的函数,封装三行打招呼的代码 -
在函数下方调用打招呼的代码
示例代码:
"""
步骤流程:
函数定义:
1. def 函数名字():
2. 函数体,打印信息
函数调用:函数名字()
"""
# 函数定义
def say_hello():
print("hello 1")
print("hello 2")
print("hello 3")
print('函数调用前')
say_hello() # 函数调用
print('函数调用后')
运行结果:
函数调用前
hello 1
hello 2
hello 3
函数调用后
02_函数执行过程、文档注释
学习目标:
- 知道函数调用的执行流程
- 能够知道函数文档的编写格式
2.1 函数执行流程
2.1.1 函数执行流程
- 如果不主动调用函数,函数是不会主动执行的
- 函数调用时,默认往前面找函数的定义,如果没有找到函数定义,则报错:
NameError: name 'say_hello' is not defined
(名称错误:say_hello 这个名字没有被定义)
函数执行流程:
2.1.2 Debug 的单步调试
-
F7 Step Into 可以单步执行代码,如果是函数,会进入函数内部
- F8 Step Over 可以单步执行代码,如果函数,直接执行函数,不会进入函数内部
2.2 函数的文档注释
-
在开发中,如果希望给函数添加文档注释,应该在 定义函数