函数介绍和定义
函数:是组织好的,可重复使用的,用来实现特定功能的代码段
使用函数的好处是:
-
将功能封装在函数内,可供随时随地重复利用
-
提高代码的复用性,减少重复代码,提高开发效率
函数的参数
定义函数时既可以传入参数也可以不传入参数
-
不传入参数:只能输出固定值
def add(): result=1+2 print(f"add方法的结果是{result}")
-
传入参数:不会只输出固定值
def add(x,y): result=x+y print(f"add方法的结果是{result}")
注意事项
-
函数定义中的参数,称之为形式参数
-
函数调用中的参数,称之为实际参数
-
函数的参数数量不限,使用逗号分隔开
-
传入参数的时候,要和形式参数意义抵用,逗号隔开
-
函数的返回值
1.有返回值
def add(a.b):
result=a+b
return result
#调用add函数
r=add(1.6)
print(r)
#输出的结果是7
2.返回值:None类型
思考:如果函数没有使用return语句返回数据,那么函数有返回值吗?
答案:有的
Python中有一个特殊的字面量:None,其类型是:<class 'NoneType'> 无返回值的函数,实际上就是返回了:None这个字面量
演示如下:
-
def say_hello(): print("hello world") #使用变量接受say_hello()函数的返回值 re=say_hello() #打印返回值 print(re) #结果为None #打印返回值类型 print(type(re)) #结果<class 'NoneType'> #None可以主动使用return返回,效果等同于不写return语句: def say_hello(): print("hello world") return None
None的类型应用场景
-
if判断
- 声明无内容的变量
函数的说明文档
掌握通过注释对函数进行解释说明
def add(a.b):
"""
函数说明
;param a:形参a的说明
:param y:形参y的说明
:return: 返回值的说明
"""
result=a+b
return result
在PyCharm编写代码时,可以通过鼠标悬停,查看调用函数的说明文档
函数的嵌套调用
-
什么是嵌套调用 在一个函数中,调用另外一个函数
-
执行流程 函数A中执行到调用函数B的语句,会将函数B全部执行完成后,继续执行函数A的剩余内容
变量的作用域
1. 局部变量
所谓局部变量是定义在函数体内部的变量,即只在函数体内部生效
def testA():
num=100
print(num)
testA() #输出100
print(num) #报错
2.全局变量
所谓全局变量,指的是在函数体内、外都能生效的变量
#定义全局变量
num=100
def testA():
print(num)
def testB():
num=200
print(num)
testA()#输出100
testB()#输出200
3.global关键字
使用 global关键字 可以在函数内部声明变量为全局变量, 如下所示
#定义全局变量
num=100
def testA():
print(num)
def testB():
#global关键字声明num是全局变量
global num
num=200
print(num)
testA()#输出100
testB()#输出200
print(num)#输出200,而不是100
综合案例讲解
要求如下
定义一个全局变量:money,用来记录银行卡余额(默认5000000) 定义一个全局变量:name,用来记录客户姓名(启动程序时输入) 定义如下的函数: 查询余额函数 存款函数 取款函数 主菜单函数 要求: 程序启动后要求输入客户姓名 查询余额、存款、取款后都会返回主菜单 存款、取款后,都应显示一下当前余额 客户选择退出或输入错误,程序会退出,否则一直运行
money=5000000
name=input("请输入您的姓名")
#定义函数
#查询余额函数
def query_money():
print("-------------查询剩余--------------")
print(f"{name},您好,您的余额:{money}元")
#存款函数
def deposit_money():
x=int(input("请输入您要存款的金额"))
global money
money=x+money
print("-------------存款--------------")
print(f"{name},您好,您存款{x}元成功")
print(f"{name},您好,您的余额生育:{money}元")
#取款函数
def withdraw_money():
y=int(input("请输入您要取款的金额"))
global money
money=money-y
print("-------------取款--------------")
print(f"{name},您好,您取款{y}元成功")
print(f"{name},您好,您的余额生育:{money}元")
#主菜单函数
def main_menu():
print("-------------主菜单--------------")
print(f"{name},您好,欢迎来到银行ATM,请选择操作")
print("查询余额\t[输入1]")
print("存款\t\t[输入2]")
print("取款\t\t[输入3]")
print("退出\t\t[输入4]")
choice=input("请输入您的选择")
if choice=="1":
query_money()
main_menu()
elif choice=="2":
deposit_money()
main_menu()
elif choice=="3":
withdraw_money()
main_menu()
else:
print("-------------已退出--------------")
main_menu()