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
关键修复点说明
- 修正缩进:将输出逻辑、时间递增代码全部放入
while循环内部,确保每次循环都能完成计算、输出、时间更新的完整流程。 - 调整循环逻辑:使用
while True构建循环,通过高度是否为负来判断是否终止循环,避免初始值导致的逻辑偏差。 - 格式规范:使用f-string简化输出格式,严格处理
1秒的单复数表述,符合题目要求。 - 终止条件处理:当计算出的高度为负数时,直接输出落地信息并退出循环,不显示负高度值。
内容的提问来源于stack exchange,提问作者icomittedtocode
相关产品推荐
相关产品推荐

