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

求助:以下Python猜数字游戏代码缩进是否正确?PyCharm运行报错

关于猜数字游戏代码的问题分析与修复

嘿,我来帮你捋捋这个问题~先从你提到的缩进疑问说起,顺便把代码里的其他小问题也一起解决掉:

一、先明确你提到的缩进问题

你说的if usersPrediction < myNumb...这段代码,必须缩进在for循环的代码块内——也就是和usersPrediction = input()保持相同的缩进层级(Python里一般用4个空格)。如果不缩进,Python会认为这段if逻辑不属于循环体,要么直接报错,要么完全不符合游戏的交互逻辑(毕竟我们需要每一次用户输入后都判断对错)。

另外这段代码里还有个小笔误:myNumb应该是myNumber,变量名拼写不一致也会触发报错哦。

二、现有代码的其他报错点

除了缩进,你当前的代码还有几个会直接导致运行失败的问题:

  • 变量名错误:你用userName = input()获取了用户名,但打印欢迎语时写成了myName,这会触发NameError
  • 输入类型不匹配:usersPrediction是用户输入的字符串,直接和数字myNumber比较会触发TypeError
  • 逻辑不完整:缺少猜对/猜错后的反馈,也没处理用完次数的情况

三、修复后的完整可运行代码

我帮你调整并补全了逻辑,同时解决了所有问题:

# 后续可以导入random模块生成随机数,比如 my_number = random.randint(1,10)
print('Hello! What is your name?')
user_name = input()
print(f'{user_name}, Welcome to Guess it!')
print('You must guess the number that I have in my mind (from 1 to 10) within 5 chances')

my_number = 3  # 后续替换成random生成的随机数即可
print('Give your prediction')

for no_of_chances in range(5, 0, -1):
    # 提示剩余机会
    print(f'You have {no_of_chances} chance(s) left')
    # 处理用户输入,转换为整数并兼容非数字输入
    try:
        users_prediction = int(input())
    except ValueError:
        print('Please enter a valid number!')
        continue
    
    # 这里的if判断必须缩进在for循环内,和上面的代码同层级
    if users_prediction == my_number:
        print('Congratulations! You guessed it right!')
        break
    elif users_prediction < my_number:
        print('Too low! Try a higher number.')
    else:
        print('Too high! Try a lower number.')
else:
    # 循环正常结束(用户用完所有机会都没猜对)
    print(f'Sorry, you ran out of chances! The number was {my_number}')

四、额外小提示

等你想实现随机数字功能时,只需要在代码开头加上import random,然后把my_number = 3替换成my_number = random.randint(1,10)就可以啦~

内容的提问来源于stack exchange,提问作者Md Arshad Ali

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:39:08