Python程序计算3天pH值时最高值输出恒为0,如何修复?
问题分析与修复方案
原代码的核心问题
- 最大值逻辑完全颠倒:你写的
ph1=highest是把初始的0.0赋值给ph1,而非拿输入的pH值和当前最大值对比更新,这直接导致最大值始终是初始的0。 - 总pH值未累加:每次循环里
totalph=ph1+ph2会覆盖之前的总和,最后计算平均时只用了第三天的数值除以3,结果完全错误。 - 多余变量干扰逻辑:
fhighest变量完全没必要,反而把最大值判断的逻辑搞混乱了。
修正后的代码
highest = 0.0 totalph = 0.0 # 初始化总pH值为0 count = 1 while count <= 3: ph1 = float(input("Enter morning pH value: ")) ph2 = float(input("Enter night pH value: ")) # 累加当天的早晚pH值到总和 totalph += ph1 + ph2 # 分别检查早晚pH值,更新最大值 if ph1 > highest: highest = ph1 if ph2 > highest: highest = ph2 count += 1 # 总共输入6个pH值(3天×早晚各1个),所以平均要除以6 average = totalph / 6 print("Average: ", average) print("Highest: ", highest)
修正说明
- 总和变量
totalph改为累加模式,确保所有输入的pH值都被计入总和。 - 最大值判断改为拿输入值和当前最大值对比,只要输入值更大就更新最大值,逻辑完全正确。
- 平均计算修正为除以6,因为一共收集了6个pH数据,原代码除以3的逻辑错误。
内容的提问来源于stack exchange,提问作者Uchhashi
相关产品推荐
相关产品推荐

