函数的基础知识可查看:函数的认识(一)
(1)函数说明文档
函数是纯代码语言,想要理解其含义,就需要一行行的去阅读理解代码,效率比较低。
我们可以给函数添加说明文档,辅助理解函数的作用
语法如下:
def func(x,y):
"""
函数说明
:param x:形参x的说明
:param y:形参y的说明
:return:返回值的说明"""
函数体
return 返回值
通过多行注释的形式,对函数进行说明解释
内容应写在函数体之前
#定义函数,进行文档说明
def add(x,y):"""add函数可以接收2个参数,进行2数相加的功能:param x:形参x表示相加的其中一个数字:param y:形参y表示相加的另一个数字:return:返回值是2数相加的结果"""result=x+yprint(f"2数相加的结果是:{result}")return result
add(5,6)
在pycharm中调用函数时,可以看到文档说明。
(2)函数的嵌套调用
#定义函数func_b
def func_b():print("---2---")#定义函数func_a,并在内部调用func_b
def func_a():print("---1---")#嵌套调用func_bfunc_b()print("---3---")#调用函数func_a
func_a()
1.什么是嵌套调用
在一个函数中,调用另外一个函数
2.执行流程
函数A中执行到调用函数B的语句,会将函数B全部执行
完成后,继续执行函数A的剩余内容
(3)变量在函数中的作用域
变量作用域指的是变量的作用范围(变量在哪里可用,在哪里不可用)
主要分为两类:局部变量和全局变量
局部变量是定义在函数体内部的变量,即只在函数体内部生效
def testA():num =100print(num)
testA() #100
print(num) #报错:name'num'is not defined
变量a是定义在testA函数内部的变量,在函数外部访问则立即报错.
局部变量的作用:在函数体内部,临时保存数据,即当函数调用完成后,则销毁局部变量
全局变量,指的是在函数体内、外都能生效的变量
思考:如果有一数据,在函数A和函数B中都要使用,该怎么办?
答:将这个数据存储在一个全局变量里面
num=100
def testA():print(f"testA:{num}")
def testB():print(f"testB:{num}")
testA() #100
testB() #100
print(num)
num=100
def testA():print(f"testA:{num}")
def testB():num=500 #局部变量print(f"testB:{num}")
testA() #100
testB() #500
print(num) #100
global关键字
使用 global关键字 可以在函数内部声明变量为全局变量,如下所示
num=100
def testA():print(f"testA:{num}")
def testB():global num #设置内部定义的变量为全局变量num=500 print(f"testB:{num}")
testA() #100
testB() #500
print(num) #500
(4)综合案例:ATM
#定义全局变量money name
money=5000000
name=None
#要求客户输入姓名
name=input("请输入您的姓名:")#定义查询函数
def query(show_header):print("----------查询余额----------")print(f"{name},您好,您的余额剩余:{money}元"}#定义存款函数
def saving(num):global money #money在函数内部定义为全局变量money+=numprint("----------存款----------")print(f"{name},您好,您存款{num}元成功。"}#调用query函数查询余额query(False)#定义取款函数
def get_money(num):global moneymoney -= numprint("----------取款----------")print(f"{name},您好,您取款{num}元成功。"}#调用query函数查询余额query(False)#定义主菜单函数
def mian():print("----------主菜单----------")print(f"{name},您好,欢迎来到黑马银行ATM。请选择操作:"}print("查询余额\t[输入1]")print("存款\t\t[输入2]")print("取款\t\t[输入3]")print("退出\t\t[输入4]")return input("请输入您的选择:")#设置无限循环,确保程序不退出
while True:keyboard_input=main()if keyboard_input=="1":query(True)continue #通过continue继续下一次循环,一进来就是回到了主菜单elif keyboard_input=="2":num=int(input("您想要存多少钱?请输入:"))saving(num)continueelif keyboard_input=="3":num=int(input("您想要取多少钱?请输入:"))get_money(num)continueelse:print("程序退出啦")break #通过break退出循环
函数综合案例的视频讲解