一、函数的定义
函数:是组织好的,可重复使用的,用来实现特定功能的代码段。
二、函数的基础定义语法
def 函数名(传入参数):
函数体
return 返回值
1、函数使用步骤
-先定义函数
-后调用函数
2、传入参数的功能
在函数进行计算的时候,接受外部(调用时)提供的数据。
-函数定义中的参数,称之为形式参数
-函数调用中的参数,称之为实际参数
-函数的参数数量不限,使用逗号分隔开
-传入参数的时候,要和形式参数一一对应,逗号隔开
3、注意事项
-参数不需要,可以省略
-返回值不需要,可以省略
4、实际操作
三、函数的返回值
1、函数返回值
函数在执行完成后,返回给调用者的结果。
2、返回值的语法
def 函数(参数...):
函数体
return 返回值
变量 = 函数(参数)
3、实际操作
4、None类型
Python中有一个特殊的字面量:None,其类型是:<class ‘NoneType’>,无返回值的函数,实际上就返回了None这个类型。
None类型的用于场景
-用在函数无返回值上
-用在if判断上
- 在if判断中,None等同于False
- 一般用于在函数中主动返回None,配合if判断相关处理
-用于声明无内容的变量上
- 定义变量,但暂时不需要变量有具体值,可以用None来代替
5、实际操作
四、函数的说明文档
1、语法
def func(x,y):
"""
函数说明
:param x:形参x的说明
:param y:形参y的说明
:return:返回值的说明
"""
函数体
return 返回值
通过多行注释的形式,对函数进行说明解释
内容应写在函数体之前
2、实际操作
五、函数的嵌套调用
1、函数嵌套调用
一个函数里面又调用了另一个函数。
2、实际操作
执行流程:
函数A中执行到调用函数B的语句,会将函数B全部执行完成后,继续执行函数A的剩余内容。
六、变量的作用域
1、局部变量
定义在函数体内部的变量,即只在函数体内部生效
def testA():
num = 100
print(num)
testA() # 100
print(num) # 报错:name 'num' is not defined
# 变量A是定义在testA函数内部的变量,在函数外部访问则立即报错
局部变量的作用:在函数体内部,临时保存数据,即函数调用完成后,则销毁局部变量。
2、全局变量
在函数体内、外都能生效的变量
# 定义全局变量a
num = 100
def testA():
print(num) # 访问全局变量num,并打印变量num存储的数据
def testB():
print(num) # 访问全局变量num,并打印变量num存储的数据
testA() # 100
testB() # 100
3、global关键字
使用global关键字,可以在函数内部声明变量为全局变量
def testA():
print(num)
def testB():
# global关键字声明a是全局变量
global num
num = 200
print(num)
testA() # 100
testB() # 200
print(f'全局变量num = {num}') #全局变量num = 200
4、实际操作
七、综合案例
-定义一个全局变量:money,用来记录银行卡余额(默认5000000)
-定义一个全局变量:name,用来记录客户姓名(启动程序时输入)
-定义如下的函数:
- 查询余额函数
- 存款函数
- 取款函数
- 主菜单函数
-要求:
- 程序启动后要求输入客户姓名
- 查询余额、存款、取款后都会返回主菜单
- 存款、取款后,都应显示一下当前余额
- 客户选择退出或输入错误,程序会退出,否则一直运行
money = 5000000
name = None
name = input("请输入您的姓名:")
def query(show_header):
if show_header:
print("------查询余额-------")
print(f"{name},您好,您的余额剩余:{money}元")
def saving(num):
global money
money += num
print("-------存款------")
print(f"{name},您好,您的存款{num}元成功。")
query(False)
def get_money(num):
global money
money -= num
print("------取款------")
print(f"{name},您好,您取款{num}元成功。")
query(False)
def main():
print("-----主菜单------")
print(f"{name},您好,欢迎来到某某ATM,请选择操作:")
print("查询余额\t\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
elif keyboard_input == "2":
num = int(input("您想要存多少钱?请输入:"))
saving(num)
continue
elif keyboard_input == "3":
num = int(input("您想要取多少钱?请输入:"))
get_money(num)
continue
else:
print("程序退出啦")
break
学习链接:https://www.bilibili.com/video/BV1qW4y1a7fU/?p=61