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

消除PyCharm中‘变量avg可能未定义’警告并优化Python代码

解决Python输入整数统计程序的警告问题及优化建议

消除警告的修正代码

total = 0
count = 0

while True:
    user_input = input("请输入整数或输入'done'结束:")
    if user_input.lower() == 'done':
        break
    # 捕获非整数输入,避免程序崩溃
    try:
        num = int(user_input)
        total += num
        count += 1
    except ValueError:
        print("无效输入,请输入整数或'done'")

# 输出统计结果
print(f"总和:{total}")
print(f"计数:{count}")
if count > 0:
    avg = total / count
    print(f"平均值:{avg}")
else:
    print("没有输入任何整数,无法计算平均值")

核心修改说明

  • 通过if count > 0的条件判断,仅在有有效整数输入时才定义并计算avg,彻底解决了PyCharm的“变量'avg'可能未定义”警告,同时避免了除以零的错误
  • 新增try-except块处理非整数输入,防止用户输入字母(除'done'外)导致程序直接崩溃
  • 使用lower()方法统一输入判断逻辑,用户输入Done、DONE等格式也能正常触发结束操作

代码优化建议

1. 用列表存储输入值(更简洁)

借助Python内置的sum()和len()函数,省去手动维护total和count的步骤,代码更简洁易读:

numbers = []

while True:
    user_input = input("请输入整数或输入'done'结束:")
    if user_input.lower() == 'done':
        break
    try:
        numbers.append(int(user_input))
    except ValueError:
        print("无效输入,请输入整数或'done'")

total = sum(numbers)
count = len(numbers)
print(f"总和:{total}")
print(f"计数:{count}")
if count > 0:
    print(f"平均值:{total / count:.2f}")  # 可指定小数位数,输出更美观
else:
    print("没有输入任何整数,无法计算平均值")

2. 模块化输出逻辑

如果后续需要扩展统计功能(比如增加中位数、最大值计算),可以把结果输出封装成独立函数,提升代码可维护性:

def print_stats(numbers):
    total = sum(numbers)
    count = len(numbers)
    print(f"总和:{total}")
    print(f"计数:{count}")
    if count > 0:
        print(f"平均值:{total / count:.2f}")
    else:
        print("没有输入任何整数,无法计算平均值")

# 主逻辑
numbers = []
while True:
    user_input = input("请输入整数或输入'done'结束:")
    if user_input.lower() == 'done':
        break
    try:
        numbers.append(int(user_input))
    except ValueError:
        print("无效输入,请输入整数或'done'")

print_stats(numbers)

3. 增强输入提示

可以在提示语中更明确地说明输入要求,降低用户误操作概率:

user_input = input("请输入一个整数(输入'done'结束程序):")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:22:30