Python函数基础:说明文档(多行注释),函数嵌套调用,变量作用域(局部,全局,global关键字),综合案例
目录
说明文档(多行注释)
函数嵌套调用
变量作用域
局部和全局变量
global关键字
综合案例
说明文档(多行注释)
通过注释解释说明函数:注释可以辅助理解函数的作用。
多行注释解释说明函数格式:
def func(x, y):
"""
函数说明
:param x: 形参x的说明
:param y: 形参y的说明
:return: 返回值的说明
"""
函数体
return 返回值
注意:内容应写在函数内,函数体前。
查看函数的说明文档(要把光标放到函数名字上):
- 使用快捷键ctrl+q查看函数的说明文档
- 使用快捷键ctrl+b跳转到函数定义查看
- 按照ctrl键,鼠标点击函数名,可跳转至函数定义查看
PyCharm中调用函数时,可以查看该函数的说明文档。
示例如下:
import random"""定义一个函数,用于计算薪资,薪资由等级(1~5)(随机)和工龄(1~30)(随机)而定基础薪资4000,总薪资=基础薪资+等级*0.3*298+工龄*100计算4名员工的总薪资
"""def salary(level, work_age):"""计算总薪资,基础薪资4000,总薪资 = level*0.3*298 + work_age*100 + 4000:param level: 等级(1~5),随机得到:param work_age: 工龄(1,30),随机得到:return: 总薪资,总薪资 = level*0.3*298 + work_age*100 + 4000"""return level * 0.3 * 298 + work_age * 100 + 4000for i in range(1, 5):x = random.randint(1, 5)y = random.randint(1, 30)print(f"第{i}名员工的总薪资为:{salary(x, y)}")
运行
函数嵌套调用
函数的嵌套调用:即函数中又调用了另一个函数。
示例如下:
def func_b():print("----2----")def func_a():print("----1----")func_b()print("----3----")func_a()
运行
变量作用域
局部和全局变量
变量的作用域:指变量的作用范围。
局部变量:指定义在函数体内部的变量,只在函数体内部生效。
局部变量-生命周期:局部变量在函数执行时会被创建,在函数执行结束后,会被系统回收
全局变量:指定义在函数外部的变量,在函数体内和外部都能生效。
全局变量-生命周期:全局变量在代码执行时被创建,代码执行结束后销毁
注意:想要在函数中,修改全局变量,需要先使用global关键字进行声明
注意:不建议使用全局变量,因为可变范围大,程序会不好维护。
局部变量示例如下:
全局变量示例如下:
# 全局变量numnum = 100def test():print(num)test()print(num)
运行
global关键字
global关键字:使用global关键字,可以在函数的内部,将函数内定义的变量声明为全局变量,从而在函数内部修改全局变量,就可以同时修改外部同名的全局变量。
不使用global关键字,示例如下:
运行
使用global关键字,示例如下:
运行
综合案例
案例:模拟ATM
要求:
- ATM的主菜单有:查询余额,存款,取款,退出,这4项操作;
- 在查询余额,存款,取款后都会返回主菜单;
- 存款,取款后都会显示当前余额;
- 客户选择退出或输入错误,程序会退出,否则一直运行。
# 案例:模拟ATMnum = 5000000while True:print("你好!请操作:\n查询余额\t[输入1]\n存款\t\t[输入2]\n取款\t\t[输入3]\n退出\t\t[输入4]")x = int(input("请输入你的选择:"))if x == 1:print(f"你好,余额还剩{num}")elif x == 2:num2 = int(input("请输入存款金额:"))num += num2print(f"存款{num2}成功!余额为:{num}")elif x == 3:num3 = int(input("请输入取款金额:"))num -= num3print(f"存款{num3}成功!余额为:{num}")elif x == 4:print("已退出!")breakelse:print("输入错误!")break
注意:也可把主菜单,查询余额,存款,取款都封装成函数,这样也更清晰明了。
运行