Python函数
一、函数的定义
二、函数的参数及返回值
1、函数的参数
2、函数的返回值
三、函数说明文档
四、函数的嵌套调用
五、变量的作用域
六、综合案例
一、函数的定义
定义:
调用:
- 函数:是组织好的,可重复使用的,用来实现特定功能的代码段。
- input()、print()、str()、int()等都是Python的内置函数
- 将功能封装在函数内,可供随时随地重复利用
- 提高代码的复用性,减少重复代码,提高开发效率
- 参数不需要时,可以省略,但括号不可以省略
- 返回值不需要时,也可以省略
代码示例
def say_hi(): print("欢迎来到CSDN!\n请出示您的邀请卡") # 调用函数 say_hi()
输出
二、函数的参数及返回值
1、函数的参数
语法解析:
- 函数定义中,提供的x和y,称之为:形式参数(形参),表示函数声明将要使用2个参数
- 参数之间使用逗号进行分隔
- 函数调用中,提供的5和6,称之为:实际参数(实参),表示函数执行时真正使用的参数值
- 传入的时候,按照顺序传入数据,使用逗号分隔
- 传入参数的功能:在函数进行计算的时候,接受外部(调用时)提供的数据
- 可以不使用参数,也可以使用任意N个参数
练习题
代码示例
# 练习题 def temperature(x): if x <= 37.5: print(f"您的体温是{x},体温正常,欢迎进入") else: print(f"您的体温是{x},体温异常,需要隔离") temperature(36) temperature(38)
输出
2、函数的返回值
- 返回值:函数在执行完成后,返回给调用者的结果
- 通过return关键字,就能向调用者返回数据
- 函数体在遇到return后就结束了,所以写在return后的代码不会执行。
- 如果没有使用return,默认返回None类型
- 在if判断中,None等同于False
- 定义变量,但暂时不需要变量有具体值,可以用None来代替
代码示例
# none类型 def say_hi(): print("欢迎来到CSDN") # 调用函数 result = say_hi() print(f"无返回值函数,返回的内容是:{result}") print(f"无返回值函数,返回的内容类型是:{type(result)}")
输出
三、函数说明文档
语法:
- 定义完成后,输入三个 “ 再回车,会自动补全注释
- 在PyCharm编写代码时,可以通过鼠标悬停,查看调用函数的说明文档
- :param 用于解释参数
- :return 用于解释返回值
代码示例
# 函数说明文档 def add(x, y): """ 输入三个“ 回车会自动补全注释 :param x: 形参其中一个数字 :param y: 形参另一个数字 :return: 返回值是2者相加的结果 """ result = x + y return result # 鼠标悬停在函数名上会显示说明文档 add(1, 2)
鼠标悬停示例
四、函数的嵌套调用
- 嵌套:在一个函数中,调用另外一个函数
- 过程:函数A中执行到调用函数B的语句,会将函数B全部执行完成后,继续执行函数A的剩余内容
代码示例
# 函数嵌套调用 def func_b(): print("---2---") def func_a(): print("---1---") func_b() print("---3---") func_a()
输出
五、变量的作用域
1、局部变量
- 定义在函数体内部的变量,即只在函数体内部生效
- 在函数体内部,临时保存数据,即当函数调用完成后,则销毁局部变量
2、全局变量
在函数体内、外都能生效的变量
3、global 关键字
使用 global关键字 可以在函数内部声明变量为全局变量
局部变量、全局变量示例
# 定义全局变量 num = 200 def test_a(): print(f"test_a:{num}") def test_b(): num = 500 # 局部变量 print(f"test_b:{num}") test_a() test_b() print(num)
输出
global 关键字使用示例
# 定义全局变量 num = 200 def test_a(): print(f"test_a:{num}") def test_b(): # global 设置内部变量为全局变量 global num num = 500 # 局部变量 print(f"test_b:{num}") test_a() test_b() print(num)
输出
六、综合案例
练习题
代码示例
# 综合案例 # 定义全局变量 money name money = 500000 # name = None # 此行可以省略 # 要求客户输入姓名 name = input("请输入您的姓名:") # 定义查询函数 def query(show_header): if show_header: print("--------------------查询余额----------------------") print(f"{name},您好,您的余额剩余:{money}元") # 定义存款函数 def saving(num): global money # money 在函数内部定义为全局变量 money += num print("--------------------存款----------------------") print(f"{name},您好,您存款{num}元成功") # 调用query查询余额函数 query(False) # 定义取款函数 def get_money(num): global money money -= num print("--------------------取款----------------------") print(f"{name},您好,您取款{num}元成功") # 调用query查询余额函数 query(False) # 定义主菜单函数 def main(): print("--------------------主菜单----------------------") print(f"{name},你好,欢迎来到ATM机,请选择操作:") print("查询余额\t\t[输入1]") print("存款\t\t[输入2]") # 通过\t制表符对其输出 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) continue elif keyboard_input == "3": num = int(input("请输入您的取款金额:")) get_money(num) continue else: print("成功退出,祝您生活愉快!") break # 通过break退出程序
输出