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

Python运行计数无法保留,触发stop后求和结果始终为0求助

问题分析与修复

你的代码存在三个核心问题,直接导致统计数值为0且逻辑混乱:

1. 类型判断写法错误

n == ('Commercial' or 'commercial') 这种写法在Python里不生效——'Commercial' or 'commercial'的运算结果是'Commercial'(非空字符串为真值,or运算会返回第一个真值),所以只有输入严格等于'Commercial'时才会累加,小写的commercial完全不会被识别,同理住宅类型的判断也存在同样问题。

2. 输入'stop'后未终止循环

当输入n = 'stop'时,代码只打印了汇总结果,但没有跳出循环,会继续执行后续的m = float(input()),导致程序仍要求输入税费,且此时n为stop,统计逻辑根本不会触发。

3. 无输入异常处理

如果输入税费时不小心输入了非数字内容,程序会直接崩溃,中断统计流程。


修复后的代码

print('Property Type   Taxes')

totalC = 0.0  # 商业地产总税费
totalR = 0.0  # 住宅地产总税费

while True:
    n = input().strip()
    if n.lower() == 'stop':
        print('Sum of Taxes   Average of Taxes')
        print('Residential Properties   ', totalR)
        print('Commercial Properties   ', totalC)
        break  # 跳出循环,终止程序
    try:
        m = float(input())
    except ValueError:
        print("请输入有效的税费数字!")
        continue
    print(n, '      ', m)
    # 不区分大小写判断物业类型
    if n.lower() == 'commercial':
        totalC += m
    elif n.lower() == 'residential':
        totalR += m
    else:
        print("未知物业类型,不计入统计")

关键修改点

  • 用n.lower()统一转换为小写后判断,兼容任意大小写的输入(比如Commercial/commercial/COMMERCIAL都能被识别)
  • 输入stop后通过break终止循环,避免后续代码干扰统计结果
  • 新增try-except捕获非数字输入的异常,防止程序崩溃

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 05:43:24