You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 04:18:03