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

Python最小支出计算异常:代码返回最小值为0的问题排查

问题分析与修复

你的代码里最小支出始终返回0的问题,核心出在**minexp的初始化逻辑**和小细节错误上:

  1. 代码里minexp=0`多了个反引号,属于语法错误,得先去掉。
  2. 关键问题:你把minexp初始设为0,但如果输入的所有支出都是正数,exp < minexp(也就是exp < 0)的条件永远不会触发,minexp就一直保持0不变。
  3. 额外问题:当前代码会把用来结束输入的0也加到总支出里,这不符合实际需求。

修复方案

方案一:用无穷大初始化minexp

把minexp初始设为无穷大float('inf'),这样第一次输入的有效支出(非0)一定会小于这个值,自动成为初始最小支出,后续再逐一比较更新:

exp = -1
total = 0
maxexp = 0
minexp = float('inf')  # 初始设为无穷大,确保第一次有效支出能覆盖它

while exp != 0:
    exp = int(input("enter your expenditure: "))
    if exp == 0:
        break  # 输入0时直接结束,不加入总支出
    total += exp
    # 补上你之前定义但没用到的最大支出更新逻辑
    if exp > maxexp:
        maxexp = exp
    # 更新最小支出
    if exp < minexp:
        minexp = exp

print("Total expenditure is: " + str(total))
print("your minimum expenditure is: " + str(minexp))
print("your maximum expenditure is: " + str(maxexp))

方案二:第一次输入后初始化minexp

如果不想用无穷大,可以在第一次输入有效支出后再设置minexp的初始值:

total = 0
maxexp = 0
minexp = None  # 先设为None,标记未初始化状态

while True:
    exp = int(input("enter your expenditure: "))
    if exp == 0:
        break
    total += exp
    # 第一次输入时初始化最大、最小支出
    if minexp is None:
        minexp = exp
        maxexp = exp
    else:
        if exp > maxexp:
            maxexp = exp
        if exp < minexp:
            minexp = exp

print("Total expenditure is: " + str(total))
print("your minimum expenditure is: " + str(minexp))
print("your maximum expenditure is: " + str(maxexp))

额外说明

两种方案都解决了0被计入总支出的问题,输入0直接结束循环,不参与计算;同时补上了你之前定义但未使用的maxexp更新逻辑,让最大支出功能正常生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 00:12:42