Python函数调用:如何将一个函数的输出作为另一函数的输入
代码修正与实现说明
你的原有代码存在两处问题导致无法正常获取length_of_shot的返回值用于计算:
- 调用函数获取返回值必须加后缀
(),直接写函数名仅代表引用函数对象,不会执行函数逻辑返回计算结果 - 代码存在拼写错误,将
length_of_shot误写为lenth_of_shot,运行会触发未定义变量报错
符合作业要求的完整代码
import math def length_of_shot(angle_deg): """根据持枪角度计算子弹命中靶时靶所处的高度 参数: angle_deg: 持枪抬起的角度,单位为度 返回值: 命中位置的竖直高度,单位为米 """ # 水平距离固定为5米,用正切值计算竖直高度 return math.tan(math.radians(angle_deg)) * 5 def time_to_shoot(angle_deg): """计算靶抛出后需要等待的开枪时间 参数: angle_deg: 持枪抬起的角度,单位为度 返回值: 等待开枪的时间,单位为秒 """ # 先调用length_of_shot获取命中高度,再除以靶的上升速度5m/s得到时间 hit_height = length_of_shot(angle_deg) return hit_height / 5 # 输入角度,标注单位 input_angle = float(input("请输入持枪抬起的角度(单位:度):")) # 调用函数计算开枪时间 wait_time = time_to_shoot(input_angle) # 输出结果 print(f"靶抛出后需要等待{wait_time:.2f}秒开枪")
核心逻辑说明
要将length_of_shot的返回值应用到time_to_shoot的计算中,直接在time_to_shoot内部调用length_of_shot()即可:调用后函数的返回值会被赋值给hit_height变量,直接代入后续的除法运算即可。如果不需要留存高度变量,也可以直接简写为return length_of_shot(angle_deg) / 5,效果完全一致。
内容的提问来源于stack exchange,提问作者Fuji
相关产品推荐
相关产品推荐

