Python猜数字游戏猜对仍报错、重复输出相同结果问题求助
问题根因
- 混淆赋值与比较运算符:所有更新用户猜测值的语句错误使用了比较运算符
==而非赋值运算符=,导致guessnum变量始终保留第一次输入的值,后续判断都基于初始值运行,自然不会根据新输入更新提示。 - 缩进逻辑错误:Easy模式下
while循环的判断逻辑没有正确缩进至循环块内,代码执行流程完全不符合预期。 - 难度次数配置错误:Hard模式设定为3次猜测,但循环条件
while number < 2实际仅支持2次猜测,和需求不符。 - 大小写兼容问题:提示用户输入E/H选择难度,但判断逻辑仅匹配小写的e/h,用户输入大写字母会直接触发输入错误,同时还修复了初始不输入y时变量未定义的报错问题。
修复后可正常运行的代码
import random randomnum = random.randint(1, 100) print(randomnum) number = 0 wttg = input("welcome to the guesing game! \ntype y to start!") if wttg.lower() == "y": playinp = input("Guess a number between 1 and 100! \nGet it right and you win!\nwould you like to play on easy mode? (10 guesses)\nor hard mode? (3 guesses) E/H").lower() else: print("oops! Thats not a correct input! Restart the code to try again! :\\") exit() if playinp == "e": guessnum = int(input("OK, easy mode selected \nGuess...")) while number < 10: if guessnum == randomnum: print("Congratulations! You are the winner! Restart code to play again!") break else: number += 1 if guessnum > randomnum: guessnum = int(input("Guess Lower")) else: guessnum = int(input("Guess Higher")) if number == 10: print("You lost boohoo. what are you guna cry?") elif playinp == "h": guessnum = int(input("OK, hard mode selected \nGuess...")) while number < 3: if guessnum == randomnum: print("Congratulations! You are the winner! Restart code to play again!") break else: number += 1 if guessnum > randomnum: guessnum = int(input("Guess Lower")) else: guessnum = int(input("Guess Higher")) print(randomnum) if number == 3: print("You lost boohoo. what are you guna cry?") else: print("oops! Thats not a correct input! Restart the code to try again!:\\")
内容的提问来源于stack exchange,提问作者Robert Thompson
相关产品推荐
相关产品推荐

