return 用来把函数内部运算结果交给函数调用处,函数一旦执行到 return,函数立刻结束,后面代码不会执行。
defadd(a, b):
res = a + b
return res # 返回一个值
result = add(3,5)
print(result) # 8
如果函数没有写
return,默认返回None
deftest():
print("hello")
r = test()
print(r) # None
defcheck_num(n):
if n < 0:
return"负数"
print("继续执行代码")
return"非负数"
print(check_num(-2))
只要触发 return,函数直接退出,后续代码不再运行。
Python 函数可以直接写多个返回值,用逗号隔开,本质返回的是元组 tuple。
defcalc(a, b):
he = a + b
cha = a - b
cheng = a * b
# 返回多个值,逗号分隔
return he, cha, cheng
# 接收多个返回值:解包赋值
s, c, m = calc(10, 3)
print(s) # 13
print(c) # 7
print(m) # 30
本质上,
return he, cha, cheng等价于return (he, cha, cheng),返回一个元组。
res = calc(10,3)
print(res) # (13, 7, 30)
print(type(res)) # <class 'tuple'>
# 3个返回值,只能用3个变量接收,数量不对会报错
# s,c = calc(10,3) # 报错:值过多无法解包
可以用 * 收集多余返回值:
a, *rest = calc(10,3)
print(a) #13
print(rest) #[7,30]
除了直接逗号返回(元组),也可以返回列表、字典,适合返回字段含义复杂的数据。
defget_info():
name = "张三"
age = 20
return [name, age]
info = get_info()
print(info[0], info[1])
defget_info():
return {"name":"张三", "age":20, "gender":"男"}
data = get_info()
print(data["name"])
print(data["age"])
return 后面什么都不写:return,等价返回 Nonedefdemo():
return
print(demo()) # None
# 输入两个数,返回和、差、积、商
defmath_op(x,y):
add_res = x + y
sub_res = x - y
mul_res = x * y
div_res = x / y
return add_res, sub_res, mul_res, div_res
a,b,c,d = math_op(20,4)
print(f"和:{a},差:{b},积:{c},商:{d}")
return:结束函数,向外返回数据;不写 return 返回 Nonereturn x,y,z,底层是元组,可以用多个变量解包接收