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

Python抛球高度计算程序无输出问题求助

问题分析与代码修复

原代码出现无限循环且无输出的核心原因是缩进错误:while循环仅包含高度计算语句,后续的输出逻辑和时间递增代码都在循环体外,导致程序一直重复计算高度,永远无法执行输出步骤。此外,逻辑顺序也存在问题,未正确处理高度为负的终止条件。

修正后的代码

# 初始化时间变量
t = 0

# 获取用户输入的初始速度和高度
b = float(input("请输入初始速度(米/秒):"))
c = float(input("请输入初始高度(米):"))

while True:
    # 计算当前t秒后的高度,保留两位小数
    h = round(-4.9 * t ** 2 + b * t + c, 2)
    
    if h < 0:
        # 高度为负,判定球已落地,输出信息后终止循环
        print(f"第{t}秒后,球已落地。")
        break
    else:
        # 根据时间数值处理单复数表述,避免语法错误
        if t == 1:
            print(f"第{t}秒后,高度为{h}米。")
        else:
            print(f"第{t}秒后,高度为{h}米。")
    
    # 时间递增,进入下一秒的计算
    t += 1

关键修复点说明

  1. 修正缩进:将输出逻辑、时间递增代码全部放入while循环内部,确保每次循环都能完成计算、输出、时间更新的完整流程。
  2. 调整循环逻辑:使用while True构建循环,通过高度是否为负来判断是否终止循环,避免初始值导致的逻辑偏差。
  3. 格式规范:使用f-string简化输出格式,严格处理1秒的单复数表述,符合题目要求。
  4. 终止条件处理:当计算出的高度为负数时,直接输出落地信息并退出循环,不显示负高度值。

内容的提问来源于stack exchange,提问作者icomittedtocode

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 00:20:38