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

Python while循环问题:最后打印语句无法输出求助

猜数字代码最后打印语句不显示的原因及修复方案

核心问题是变量类型不匹配导致循环无法终止:

  • user_number通过input()获取,默认是字符串类型
  • random1是random.randint()生成的整数类型
  • 字符串和整数直接用!=比较永远不会相等,循环会无限执行,永远到不了最后那句打印语句

修复方法

每次获取用户输入后,将其转换为整数类型,确保和random1的类型一致。以下是修复后的代码:

import random

def guess(x):
    random1 = random.randint(1, x)
    # 第一次输入就转为整数
    user_number = int(input(f"guess the random number between 1 and {x}: "))
    while user_number != random1:
        if random1 < user_number:
            print("the number you chose is a little bit higher")
            user_number = int(input("try again :  "))
        elif random1 > user_number:
            print("the number you chose is a little bit lower")
            user_number = int(input("try again :  "))

    print("the number you chose is correct you're so lucky")

guess(9)

额外优化(可选)

如果担心用户输入非数字导致报错,可以添加异常处理:

import random

def guess(x):
    random1 = random.randint(1, x)
    # 处理首次输入的非数字情况
    while True:
        try:
            user_number = int(input(f"guess the random number between 1 and {x}: "))
            break
        except ValueError:
            print("Please enter a valid number!")
    
    while user_number != random1:
        if random1 < user_number:
            print("the number you chose is a little bit higher")
        else:
            print("the number you chose is a little bit lower")
        # 处理重试时的非数字情况
        while True:
            try:
                user_number = int(input("try again :  "))
                break
            except ValueError:
                print("Please enter a valid number!")

    print("the number you chose is correct you're so lucky")

guess(9)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 07:16:30