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

Python While循环持续打印无法接收用户输入,请求技术协助

问题分析与解决方案

代码存在的核心问题

  • 循环未更新输入值:进入while循环后没有重新获取用户输入,num始终保持第一次输入的值,导致循环条件永远成立,无限打印提示信息
  • 逻辑执行顺序错误:break语句写在计算平均值的代码之前,一旦触发if num == -1判断,会直接跳出循环,后续计算和打印代码永远无法运行
  • 冗余代码:循环结束后的print("Nope, guess again:")属于无效输出,会在程序结束时错误显示
  • 条件判断冗余:-abs(1)等价于-1,直接写-1更直观

修正后的代码

# 创建存储输入数字的列表
wrong = []

# 游戏说明
input("Hi, We're gonna play a guessing game. When asked enter a number between -10 and 10.\nIf not correct you'll have to guess again ^-^")

# 循环获取输入
while True:
    num = int(input("number:"))
    if num == -1:
        # 输入-1时计算平均值,先判断列表是否为空避免除以0
        if wrong:
            av = sum(wrong) / len(wrong)
            print("You got it! The average of your wrong answers is: ")
            print(av)
        else:
            print("You didn't enter any numbers before inputting -1!")
        print("The End")
        break
    # 非-1的数字加入列表
    wrong.append(num)

修改说明

  1. 改用while True无限循环,内部通过if num == -1判断终止条件,逻辑更清晰
  2. 每次循环开始先获取用户输入,确保num能实时更新
  3. 将计算平均值的代码放在break之前,保证输入-1时能正常执行计算
  4. 添加空列表判断,避免用户直接输入-1导致的除以0错误
  5. 移除冗余的无效打印语句

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:35:21