目录
1、初始函数
函数:是组织好的,可重复使用的,用来实现特定功能的代码段。
为了得到一个针对特定需求,可供重复利用的代码段,减少重复性代码,将功能封装在一起方便重复使用,提高开发效率,在项目开发过程中会经常使用到函数。
函数的定义:
def 函数名(传入参数):
函数体
return 返回值
- 参数如果不需要,可以省略
- 返回值如果不需要,可以省略
- 函数必须先定义再使用
2、参数
函数中,参数的作用是在函数运行的时候接受外部传入的数据
#函数实现两个数相加
def add(x,y):
z=x+y
return z
print(add(4,5))
输出结果为9
其中,函数定义中的x和y称为形式参数(形参),表示函数使用时要从外部传入两个参数,参数之间使用逗号分隔。在函数的使用中的4和5称之为实际参数(实参)表示函数执行时使用的实际数值,在传入的时候按照顺序传入数据,也使用逗号分隔。
3、返回值
返回值是函数完成功能后反回给调用者的结果,使用关键字return来返回结果,值得注意的是函数体中return放在最后一行,函数中的代码执行到return时就会结束,函数中写在return后面的代码将不被执行。
4、None
上文提到,返回值如果不需要可以省略,但不使用return的函数依然会有返回值,返回值是None,这是一个特殊的字面量,类型是NoneType
#测试不使用return的函数的返回值是什么
def funtion():
print("函数调用成功")
result=funtion()
print(f"函数的返回值是{result},返回值的类型是{type(result)}")
运行结果为:
None表示空的、无意义的,函数返回的None就表示这个函数没有返回什么有意义的数据,也就是返回了空值。None类型作为一个特殊的字面量有许多应用场景:
- 用在函数无返回值上。
- 用在if判断上。在if判断中,None等同于False,一般用于在函数中主动返回None配合if判断做相关处理。
- 用于声明暂时没有内容的变量。当定义变量时但暂时不需要变量有具体的值的时候,可以定义变量为None。
5、函数的说明文档
因为函数是由纯代码组成的,想要了解函数的含义就需要阅读理解代码,效率比较低下,所以为了辅助理解函数我们可以给函数添加说明文档,一般在写在函数内部、函数体之前,采用多行注释的方式对函数进行说明解释。
在PyCharm、VScode等IDE中对于编写了函数说明文档的函数,当鼠标悬停在函数上方时会显示函数说明,例如:
6、函数的嵌套调用
函数的嵌套调用就是在一个函数中调用另一个函数,例如在函数A中调用函数B,代码运行时函数A中的内容执行到调用函数B的语句时会将函数B全部执行,完成后再继续执行函数A的剩余内容。
#测试函数调用
def funtionB():
print("2")
def funtionA():
print("1")
funtionB()
print("3")
funtionA()
运行结果为:
7、局部变量和全局变量
在函数内部定义的变量只在这个函数的内部起作用,在函数外部则无法被使用,这样的变量称为局部变量。相对的,在函数外部定义的变量在整个程序的范围内都可以访问,这种变量称为全局变量
运行成功,输出结果为100
运行失败,报错num没有被定义
而且全局变量和局部变量名字相同并不会提示错误,当全局变量和局部变量名字相同时,函数内部的代码访问变量会优先访问该函数内部的局部变量
输出结果为:
如果要将函数内部的变量声明为全局变量,可以使用关键字global,使用global关键字可以在函数内部声明变量为全局变量
运行结果为:
8、函数的综合案例
例题:ATM机,要求使用函数实现主菜单余额查询、存钱、取钱、退出系统等功能,使用服务后会回到主菜单,只有选择退出函数才会结束运行,否则一直运行。
#函数实现简易ATM机
money=5000000
name=input("请输入您的姓名:")
flag=True
def cheak_money(money):
print(f"您的账户余额为:{money}")
def deposit():
"""
实现存钱功能的函数
"""
global money
num=int(input("请输入您要存入的金额:"))
money+=num
print(f"存钱成功,您的账户余额为:{money}")
def withdrawal():
"""
实现取钱功能的函数
"""
global money
num=int(input("请输入您要取出的金额:"))
if num>money:
print(f"取钱失败,您的账户余额不足,为:{money}")
else:
money-=num
print(f"取款成功,您的账户余额为:{money}")
def exit():
"""
实现退出系统功能
"""
global flag
flag=False
print("正在退出系统,感谢您的使用!")
def fun_menu(name):
"""
主菜单函数
"""
global money
service=int(input(f"""{name},您好,欢迎使用智障牌ATM机
查询余额\t【输入1】
存款\t【输入2】
取款\t【输入3】
退出\t【输入4】
请选择您需要的服务:"""))
if service==1:
cheak_money(money)
elif service==2:
deposit()
elif service==3:
withdrawal()
elif service==4:
exit()
else:
print("服务不存在,请重新选择服务!")
while flag:
fun_menu(name)
运行效果如图所示:
至此,我们了解了python函数的基础用法