python入门(一)——你好python
python入门(二)——python基础语法
python入门(三)——python判断语句
python入门(四)——python循环语句
python入门(六)——python数据容器
python入门(七)——python函数进阶
函数:组织好、可重复使用、用来实现特定功能的代码段
好处
函数的定义
def 函数名(传入参数):
函数体
return 返回值
# 不可缺少括号
# 函数的调用:函数名(参数)
先执行调用函数,在执行函数里的代码
注意事项
def welcome():
print("欢迎来到比奇堡!")
print("请出示您的健康码以及48小时核酸阴性证明!")
welcome()
欢迎来到比奇堡!
请出示您的健康码以及48小时核酸阴性证明!
功能:在函数进行计算时,接受外部(调用时)提供的数据
def add():
result = 1 + 2
print(f"1 + 2的结果是:{result}")
def add(x, y):
result = x + y
print(f"{x} + {y}的结果是:{result}")
add(1, 2)
1 + 2的结果是:3
传入参数的数量不受限制,可以不使用参数,也可以仅使用任意N个参数
temp = float(input("欢迎来到黑马程序员!请出示您的健康码以及72小时核算证明,并配合测量体温!"))
def check(num):
if num <= 37.5:
print(f"体温测量中,您的提问是:{num}度,体温正常请进!")
else:
print(f"体温测量中,您的提问是:{num}度,需要隔离!")
check(temp)
欢迎来到黑马程序员!请出示您的健康码以及72小时核算证明,并配合测量体温!37.5
体温测量中,您的提问是:37.5度,体温正常请进!
返回值是程序中函数完成事情后,最后给调用者的结果
def 函数(参数...):
函数体
return 返回值
变量 = 函数(参数)#变量接受返回的函数值
def add(a, b):
result = a + b
return result
print("结束运行!")
# return后面的代码都不会被执行
r = add(5, 6)
print(r)
11
无返回值的函数,实际上是返回None字面量
def add(a, b):
result = a + b
r = add(5, 6)
print(r)
None
def add(a, b):
result = a + b
print(result)
r = add(5, 6)
print(r)
11
None
def add(a, b):
result = a + b
print(result)
return None
r = add(5, 6)
print(r)
type(r)
print(type(r))
11
None
<class 'NoneType'>
def check_age(age):
if age >= 18:
return "SUCCESS"
else:
return None
result = check_age(16)
if not result:
print("未成年,不可以进入")
未成年,不可以进入
给函数添加说明文档,辅助理解函数作用
def func(x, y):
"""
函数说明
:param x:形参x的说明
:param y:形参y的说明
:return:return返回值的说明
"""
函数体
return 返回值
通过多行注释的形式,对函数进行说明解释,内容应写在函数体之前
函数里面又调用了另外一个函数
def func_b():
print("---2---")
def func_a():
print("---1---")
func_b()
print("---3---")
# 调用函数func_a
func_a()
---1---
---2---
---3---
执行流程:
函数A中执行到调用函数B的语句,会将函数B全部执行完成后,继续执行函数A的剩余内容
定义在函数体内部的变量,只在函数体内部生效,临时保存数据,调用完成后立刻销毁局部变量
def test_a():
num = 100
print(num)
test_a()
print(num)
100
NameError: name 'num' is not defined
在函数体内、外部都能生效的变量
num = 100
def test_a():
print(num)
test_a()
print(num)
100
100
全局变量vs局部变量
num = 100
def test_a():
print(num)
def test_b():
num = 500
print(num)
test_a()
test_b()
print(num)
100
500
100
可以在函数内部声明变量为全局变量
num = 100
def test_a():
print(num)
def test_b():
global num
num = 500
print(num)
test_a()
test_b()
print(num)
100
500
500
money = 5000000
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[输入1]")
print("存款\t\t[输入2]")
print("取款\t\t[输入3]")
print("退出\t\t[输入4]")
return input("请输入您的选择:")
while True:
key = main()
if key == "1":
query(True)
continue
elif key == "2":
saving(int(input("请输入您的存款金额:")))
continue
elif key == "3":
get_money(int(input("请输入您的取款金额:")))
continue
elif key == "4":
print("程序退出啦!")
break