Python函数
- 一.函数介绍
- 二.函数的定义
- 三.函数的参数
- 四.函数的返回值
- 1.函数返回值定义
- 2.None类型
- 五.函数说明文档
- 六.函数的嵌套调用
- 七.变量作用域
- 八.综合案例
一.函数介绍
函数:是组织好的,可重复使用的,用来实现特定功能的代码段。
好处:
- 将功能封装在函数内,可供随时随地重复利用
- 提高代码的复用性,减少重复代码,提高开发效率
二.函数的定义
1.函数的定义语法
2.函数的使用步骤
- 先定义函数
- 再调用函数
3.注意事项
- 参数不需要,可以省略
- 返回值不需要,可以省略
练习
# 定义函数
def check():print("调用函数")
# 调用函数
check()
# 输出
调用函数
三.函数的参数
1.函数的传入参数作用是什么
在函数运行的时候,接受外部传入的数据
2.使用方式
3.注意事项
- 函数定义的参数,称之为形式参数
- 函数调用的参数,称之为实际参数
- 函数的参数数量不限,使用逗号分隔开
- 传入参数的时候,要和形式参数一一对应,逗号隔开
练习
#定义函数
def check(num):print("请测量体温")if num >= 37.5:print(f"您的体温是{num},需要隔离")else:print(f"您的体温是{num},可以进入")
#调用函数
check(37.6)
#输出
请测量体温
您的体温是37.6,需要隔离
四.函数的返回值
1.函数返回值定义
1.1什么是函数的返回值
函数在执行完成后,返回给调用者的结果
1.2返回值的应用语法
使用关键字,return返回结果
1.3注意
函数在遇到return后就结束了,所以写在return后的代码就不会被执行了。
练习
#定义函数
def add(x,y):result = x + yreturn resultr = add(1,2)
print(r)
#输出
11
2.None类型
思考:如果函数没有使用return语句返回数据,那么函数有返回值吗?
实际上是:有的。
Python中有一个特殊的字面量:None,其类型是:<class ‘NoneType’>
无返回值的函数,实际上就是返回了:None这个字面量
None表示:空的、无实际意义的意思
函数返回的None,就表示,这个函数没有返回什么有意义的内容。
也就是返回了空的意思。
1.什么是None
None是类型‘NonoType’的字面量,用于表示:空的,无意义的
2.函数如何返回None
- 不使用return语句即返回None
- 主动return None
3.使用场景
- 函数返回值
- if 判断
- 变量定义
练习
# 定义函数
def say_hi():print("你好呀")return None
result = say_hi()
print(f"无返回值函数,返回内容是:{result}")
print(f"无返回值函数,返回内容类型是{type(result)}")
#输出
你好呀
无返回值函数,返回内容是:None
无返回值函数,返回内容类型是<class 'NoneType'>
五.函数说明文档
1.说明文档的作用是
对函数进行说明解释,帮助更好理解函数的功能
2.定义语法
- param 用于解释参数
- return 用于解释返回值
六.函数的嵌套调用
1.什么是函数调用
在一个函数中,调用另一个函数
2.执行流程
函数A中执行到调用函数B的语句,会将函数B全部执行完之后,继续执行函数A剩下的语句。
练习
# 定义函数func_b
def func_b():print("---2---")
# 定义函数func_a,内部调用func_b
def func_a():print("---1---")func_b()print("---3---")
# 调用函数
func_a()
#输出
---1---
---2---
---3---
七.变量作用域
1.什么是局部变量
作用范围在函数内部,函数外部无效
2.什么是全局变量
在函数内部外部都可以使用
3.如何将函数内定义的变量声明为全局变量
使用global关键字 global 变量
练习
###全局变量
num = 200 # 定义全局变量
def test_a():print(f"test_a:{num}")
def test_b():print(f"test_b:{num}")
test_a()
test_b()
print(num)
#输出
test_a:200
test_b:200
200###局部变量变为全局变量
num = 200
def test_a():print(f"test_a:{num}")
def test_b():global num #声明局部变量变为全局变量num = 500print(f"test_b:{num}")
test_a()
test_b()
print(num)
#输出
test_a:200
test_b:500
500
八.综合案例
要求
# 定义全局变量
money = 5000000
name = input(f"请输入你的名字:")
# 定义查询函数
def query(show_header):if show_header:print("--------------查询余额--------------")print(f"{name},您好,您的余额剩余:{money}元")
# 定义存款函数
def saving(num):global moneymoney += numprint(f"{name},您好,您存款{num}元成功。")#调用query函数查询余额query(False)
# 定义取款函数
def get_money(num):global moneymoney -= numprint(f"{name},您好,您取款{num}元成功。")# 调用query函数查询余额query(False)
# 定义主菜单
def main():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
##输出
请输入你的名字:tdm
--------------主菜单--------------
tdm,您好,欢迎来到黑马ATM。请选择操作:
查询余额 [输出1]
存款 [输出2]
取款 [输出3]
退出 [输出4]
请输入你的选择:1
--------------查询余额--------------
tdm,您好,您的余额剩余:5000000元
--------------主菜单--------------
tdm,您好,欢迎来到黑马ATM。请选择操作:
查询余额 [输出1]
存款 [输出2]
取款 [输出3]
退出 [输出4]
请输入你的选择:2
您想要存多少钱: 500000
tdm,您好,您存款500000元成功。
tdm,您好,您的余额剩余:5500000元
--------------主菜单--------------
tdm,您好,欢迎来到黑马ATM。请选择操作:
查询余额 [输出1]
存款 [输出2]
取款 [输出3]
退出 [输出4]
请输入你的选择:3
您要取多少钱: 200000
tdm,您好,您取款200000元成功。
tdm,您好,您的余额剩余:5300000元
--------------主菜单--------------
tdm,您好,欢迎来到黑马ATM。请选择操作:
查询余额 [输出1]
存款 [输出2]
取款 [输出3]
退出 [输出4]
请输入你的选择:4
输入错误