Python编写泳池水量计算程序无法输出计算结果问题排查
程序故障原因
你的泳池注水量计算代码跑不通、结果不对,是3个核心问题导致的:
- 覆写了Python内置的
print函数:你从第一处交互开始就写print = input(...),把原本用来输出内容的print函数变成了存储用户输入内容的变量,后续所有想调用print输出的逻辑全部失效,最后一行print = (total)只是给这个叫print的变量赋值,根本不会把结果显示在屏幕上。 - 单位换算公式完全错误:你输入的长宽高单位是英尺,三者相乘得到的是立方英尺体积,1立方英尺约等于28.3168升,你写的除以100000的计算逻辑没有任何单位依据,算出来的数值和实际注水量差了几个数量级。
- 存在无效冗余代码:单独写的
exec没有任何调用参数,属于完全不生效的废代码;交互提示要求用户按7次回车,但你写了8个input等待输入,逻辑不匹配,欢迎的ASCII字符也被放在input里,用户按回车过程中看不到完整的欢迎效果。
修复后可直接运行的代码
# 程序功能说明 print("This program will assist home owners calculate measure of water for in-ground swimming pool.") # 引导用户按回车进入程序 input("Please Press Enter 7 times") # 打印欢迎语和ASCII装饰 print("Welcome! Let’s get right to it!") print(" ☆ * . ☆") print("* . ∧_∧ ∩ * ☆") print("* ☆ ( ・∀・)/ .") print(" . ⊂⠀⠀⠀⠀ノ* ☆") print(" ☆ * (つ ノ .☆") print(" (ノ") # 读取用户输入的泳池三维尺寸(单位:英尺) height = float(input("Enter the tank height (ft): ")) width = float(input("Enter the tank width (ft): ")) depth = float(input("Enter the tank depth (ft): ")) # 计算体积并换算为升 cubic_ft_volume = height * width * depth total_water_liter = cubic_ft_volume * 28.3168 # 输出最终计算结果 print(f"该地下游泳池总注水量约为 {round(total_water_liter,2)} 升")
参考运行效果

修改点说明
- 移除所有给
print的错误赋值,恢复print的打印功能,欢迎装饰内容直接用print输出,不需要嵌套在input里 - 替换错误的体积换算公式,使用立方英尺转升的标准换算系数
- 删除无意义的孤立
exec代码 - 调整交互逻辑,和提示的回车操作匹配,避免多余的输入等待
- 增加结果格式化输出,直接展示带单位的清晰计算结果
内容的提问来源于stack exchange,提问作者SUNSHINE
相关产品推荐
相关产品推荐

