📖 知识点
语法
def 函数名(参数):
逻辑代码
return 值1, 值2, 值3 # 多个返回值,逗号隔开
# 调用:多个变量接收返回结果,一一对应
var1, var2, var3 = 函数名(实参)
核心要点:
return后写多个数据,用逗号分隔,Python 会自动打包为元组 (tuple)返回- 接收时变量数量,要和 return 返回值数量保持一致,否则报错
- 也可以只用单个变量接收,此时拿到的是一个元组
- 执行到 return,函数依旧立刻终止,后面代码不再运行
示例代码
def get_rect_info(width, height):
area = width * height
perimeter = (width + height) * 2
# 同时返回面积、周长两个结果
return area, perimeter
# 多变量接收
s, p = get_rect_info(10, 5)
print(f"矩形面积:{s},周长:{p}")
# 单变量接收,得到元组
res = get_rect_info(10,5)
print("打包后的元组:", res)
输出:
矩形面积:50,周长:30
打包后的元组: (50, 30)
🥋 Kata 实战任务
编写函数 calc_two(num) 需求:
- def 定义函数,形参 num
- 函数内部计算两个结果:平方
num**2,平方根近似num**0.5 - 使用 return 同时返回平方、平方根两个值
- 调用函数传入数字 16,用两个变量分别接收结果
- 在函数外部打印:
数字16,平方=XX,平方根=XX
✅ 参考代码
def calc_two(num):
square = num ** 2
sqrt_num = num ** 0.5
return square, sqrt_num
# 接收两个返回值
s_result, sqrt_result = calc_two(16)
print(f"数字16,平方={s_result},平方根={sqrt_result}")
运行输出:
数字16,平方=256,平方根=4.0
🤔 思考题
- 如果返回 2 个值,但接收只写 1 个变量,拿到的数据类型是什么?
- 如果 return 返回 2 个值,但是用 3 个变量去接收,运行会发生什么?
行者孙Python