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

Python按下S键无法终止循环问题及平均值计算器代码优化

平均值计算器问题修复

原代码核心问题

  • 终止逻辑完全失效:刚获取用户输入的终止指令就被强制赋值为False,永远无法触发循环退出
  • 输入与终止提示分离:两次独立的input操作,不符合合并到同一行的需求
  • 未做类型转换:直接将字符串存入列表,后续sum运算会报错
  • 代码逻辑顺序错误:break后的平均值计算语句永远无法执行

修复后的代码

total = 0
numbers = []

while True:
    user_input = input("输入数字(按S停止):")
    # 判断是否触发终止
    if user_input.strip().upper() == 'S':
        break
    # 处理数字输入与非法输入
    try:
        num = float(user_input)
        numbers.append(num)
        print(f"已输入 {len(numbers)} 个数字")
    except ValueError:
        print("请输入有效数字或按S停止")

# 计算并输出平均值
if numbers:
    average = sum(numbers) / len(numbers)
    print("\n" * 2)
    print(f"平均值为:{average}")
else:
    print("未输入任何数字,无法计算平均值")

修复说明

  • 合并输入与终止提示:将数字输入和停止指令提示整合到同一个input语句,用户可直接输入数字或按S终止
  • 修正终止逻辑:先判断输入是否为S(不区分大小写),符合条件立即退出循环
  • 类型转换与错误处理:将输入转为浮点数兼容整数和小数,用try-except捕获非法输入并给出提示
  • 简化计数逻辑:用len(numbers)直接统计输入数量,无需额外计数器
  • 调整代码结构:将平均值计算放在循环外部,确保终止后能正常执行
  • 空输入处理:增加判断,若未输入任何数字则给出友好提示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 19:40:33