一、函数介绍
组织好的,可重复使用的,用来实现特定功能的代码段
例如:len() 函数--Python内置函数
# 已组织好的、可重复使用,针对特定功能
def my_len(data):
count = 0
for i in data:
count += 1
print(f"字符串{data}的长度是{count}")
为了得到针对特定需求,可重复利用的代码段;提高程序的复用性,减少重复代码,提高开发效率
二、函数的定义
def 函数名(传入参数):
函数体
return 返回值
目前主要看以上三部分(注意引号和缩进)使用函数时要调用
函数名(参数
)
函数必须先定义再调用
三、函数的传参
传入参数的功能是:在函数进行计算时,接收外部(调用时)提供的数据
# 传参函数 两数相加
def add(x,y):
re = x + y
print(f"{x}和{y}的和为{re}")
# 调用函数,传入要计算的两个数字
add(12333,23321)
输出:
12333和23321的和为35654
函数定义,提供的x和y,称之为形式参数(形参),表示函数声明要使用两个参数
-
参数之间使用逗号分隔
函数调用,提供的12333,23321称之为实际参数(实参),表示函数执行时真正使用的参数值
-
传入的时候,按照顺序传入数据,使用逗号分隔
函数-传入参数是不受限制的:
可以不适用参数
也可以是N个
但是调用时候的
实参和形参要一一对应。
# 传参函数案例 定义一个函数,名称不限定,接受一个参数传入(数字类型,表示体温)
# 在函数内进行体温判断 判断值 37.3度
def check_t(data:float):
print("欢迎来到游乐园,请出示您的的健康码以及72小时核酸证明,并配合测量体温!")
if data <= 37.3:
print(f"体温测量中,您的体温是{data},体温正常请进!")
else :
print(f"体温测量中,您的体温是{data},需要隔离!")
四、函数的返回值
1、什么是返回值:程序中函数执行完成后,返回给调用者的结果
定义语法:
如图,变量就能接收到函数的返回值
语法就是:通过return关键字,就能向调用者返回数据
# 定义一个函数 完成两数相加 并且通过返回值将相加的结果返回给调用者
def add(x,y):
# res =
return x + y
print("ffjj") # 不会执行--函数体遇到return关键字,表明函数在此结束了 return之后的内容不会执行
2、函数返回值---None类型
如果函数没有使用return语句返回数据,函数也是有返回值的
无返回值的函数,实际上是返回了:None这个字面量
Python中有一个特殊字面量:None,其类型就是:<class'NoneType'>
None的使用场景
1.结合if判断--None--False
2.用于声明无内容的变量 --定义变量,暂时不需要变量取值,可以用None代替
3.函数返回值
五、函数说明文档 --通过注释对函数进行解释说明
通过多行注释,给函数添加说明文档,一般写在函数体之前
def add(x,y):
"""
说明函数作用:
:param x:形参1
:param y:形参2
:return:两数相加的和
"""
return x + y
调用函数时,鼠标悬停在函数名上会显示函数说明文档
六、函数的嵌套调用
一个函数里面调用了另一个函数
执行流程
函数A中执行到调用函数B的语句,会讲函数B全部执行完成后,继续执行函数A的剩余内容
# 函数嵌套
def fun1():
print("--2--")
def fun2():
print("--1--")
# 嵌套调用fun1
fun1()
print("--3--")
# 调用fun2
fun2()
输出:
--1--
--2--
--3--
七、变量在函数中的作用域
1.局部变量:出了定义它的函数体就无法继续使用
2.全局变量:在函数体内,体外都可以生效的变量
3.global关键字
使用global关键字可以将函数内定义的变量声明为全局变量
语法: global 变量
八、函数综合案例
实现ATM功能
实现的效果:
代码如下
# 实现ATM
# 定义一个全局变量,记录银行卡余额
money = 5000000
# 定义一个全局变量,记录客户姓名(程序启动时输入)
name = input("请输入您的姓名:")
# 定义如下函数:
# 1、查询余额函数
def check_m(show_header):
if show_header:
print("----------------查询余额--------------")
print(f"{name},您好,您的余额剩余:{money}元。\n")
# 2、定义存款函数
def save_m(num):
global money # 将money在函数内部定义为全局变量,可修改值
money += num
print("----------------存款-----------------")
print(f"{name},您好,您存款50000元成功")
check_m(False) # 调用查询函数来查询
# 3、定义取款函数
def get_m(num):
global money
money -= num
print("----------------取款-----------------")
print(f"{name},您好,您取款50000元成功")
check_m(False) # 调用查询函数来查询
# 4、主菜单函数:
def main_m():
print("-----------------主菜单----------------")
print(f"{name},您好,欢迎来到bearATM,请选择操作")
print("查询余额\t[输入1]")
print("存款\t\t[输入2]")
print("取款\t\t[输入3]")
print("退出\t\t[输入4]")
return input("请输入您的选择:")
# 设置无限循环,确保程序不会退出
while True:
key_bord=main_m()
if key_bord == "1":
check_m(True)
continue # 确保查询余额、取款、存款后返回主菜单
elif key_bord == "2":
save_num = int(input("您想要存多少钱?请输入:"))
save_m(save_num)
continue
elif key_bord == "3":
get_num = int(input("您想要取多少钱?请输入:"))
if get_num > money:
print("余额不足!")
else:
get_m(get_num)
continue
else:
print("程序退出啦!")
break # 通过break跳出循环 退出
------------------------------------------------------------------------------------------------原创笔记,转载注明出处
---------------------------------------------------------------------------------------------------------------#springbear#