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

Python重复录入数值统计奇数总和及均值时报类型错误如何解决

错误原因分析
  • 逻辑顺序错误:代码优先对输入内容执行int(input())强制转整数操作,再判断输入是否为空。空字符串无法被转为整数,会直接触发类型异常;且已经转为整数的变量永远不可能等于空字符串,循环终止条件永远无法生效。
  • 运算符误用风险:如果输入内容未正常转为整数就执行% 2运算,%会被识别为Python字符串格式化运算符而非取模运算符,就会触发你遇到的not all arguments are converted during string formatting报错。
  • 变量名冲突:使用Python内置函数名sum、len作为自定义变量,会覆盖内置函数功能,属于代码隐患。
  • 缺少异常处理:未校验输入内容是否为有效整数,输入非数字内容时会直接报错;未判断奇数计数是否为0,无奇数录入时计算平均值会触发除零错误。
修复方案

调整逻辑顺序:先读取输入字符串,判断为空直接终止循环,再做整数转换;添加输入有效性校验,更换合法变量名,增加除零防护逻辑。

修复后完整代码
odd_sum = 0
odd_count = 0
while True:
    input_str = input()
    # 空输入结束录入
    if input_str.strip() == "":
        break
    # 校验输入是否为整数
    try:
        number = int(input_str)
    except ValueError:
        print("请输入合法整数")
        continue
    # 统计奇数
    if number % 2 == 1:
        print(number)
        odd_sum += number
        odd_count += 1

# 计算平均值
if odd_count == 0:
    print("未录入任何奇数,无法计算平均值")
else:
    avg = odd_sum / odd_count
    print(f"奇数平均值为:{avg}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 22:54:03