函数定义:
"""
def 函数名(传入参数):函数体return 返回值
"""
函数调用:
"""
函数名(传入参数)
"""
例子:
# 不带参
def check():print("欢迎光临\n请进")
check()#带参
def he(m, n): # 形参result = m + nprint(f"{m}+{n}={result}")
he(109, 2) # 实参
函数返回值:
"""
def 函数名(传入参数):函数体return 返回值
变量 = 函数(参数)
"""
例子:
def add(a, b):result = a + breturn resultprint("1") # return后面的语句不能执行r = add(3, 1)
print(r)
如果函数没有使用return语句返回数据,那么函数有返回值吗? 实际上是:有的。 Python中有一个特殊的字面量: None,其类型是:<lass NoneType'>无返回值的函数,实际上就是返回了: None这个字面量
例如:
def say_hi():print("你好")
result = say_hi()
print(result) # None
print(f"{type(result)}") # <class 'NoneType'>
None的使用场景:
"""
None类型的应用场景
None作为一个特殊的字面量,用于表示:空、无意义,其有非常多的应用场景。1.用在函数无返回值上2.用在if判断上在if判断中,None等同于False一般用于在函数中主动返回None,配合if判断做相关处理3.用于声明无内容的变量上定义变量,但暂时不需要变量有具体值,可以用None来代替#暂不赋予变量具体值name = None
"""
# 用在函数无返回值上
def say_hi2():print("你好")return None
result2 = say_hi2()
print(result2) # None
print(f"{type(result2)}") # <class 'NoneType'># None用于if判断
def check_age(age):if age > 18:return "SUCCESS"else:return Noneresult3 = check_age(16)
if not result3:print("未成年")# None用于声明无初始内容的变量
name = None
函数作用域:局部变量与全局变量
函数作用域:
num1 = 100 # 全局变量
def a():num2 = 200 # 局部变量print(num1) # 函数内能使用 全局 变量print(num2) # 函数内能使用 局部 变量
a()
print(num1) # 函数外 可以 使用 全局 变量
# print(num2 # 函数外 不能 使用 局部 变量
在函数内修改全局变量----局部与全局互不影响
num = 100 # 全局变量
def a1():num = 200 # 局部变量,不会影响全局变量print(num)
a1()
print(num) # 100
若要在函数内声明变量为全局变量 ---使用global
num = 100
def a2():global numnum = 200print(num)
a2()
print(num)
总结小案例:
name = input("请输入你的姓名")
money = 10000000
# 查询
def query(show_header):if show_header:print("-------查询余额-------")print(f"{name}您好,您的余额剩余:{money}元")# 存款
def saving(num):global moneymoney += numprint("------存款-------")print(f"{name},您存款{num}元成功")query(False)# 取款
def get_money(num1):global moneymoney -= num1print("------取款-------")print(f"{name},您取款{num1}元成功")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