颜色猜谜游戏while循环实现问题求助
颜色猜谜游戏代码修复方案
你的代码存在几个关键问题,导致无法正常运行:
if-else语句块写在了while循环外部,循环会无限执行,永远不会触发猜对的判断逻辑,且break语句在循环外会引发语法错误- 作业要求初始猜测次数变量赋值为1,你设置成了0,不符合要求
- 猜错后的重新输入逻辑错误,没有整合到循环流程里,且没有正确累加猜测次数
以下是修正后的代码,完全符合作业要求:
correct_guess = 'red' guess_count = 1 # 按照作业要求初始赋值为1 while True: # 用无限循环替代inf的判断,更简洁直观 guess = input('Guess a color: ') if guess == correct_guess: print(f'Congratulations! You won! It took you this many attempts: {guess_count}') break # 猜对后跳出循环 else: print('Incorrect, guess again') guess_count += 1 # 猜错后累加猜测次数
关键修改说明:
- 调整
guess_count初始值为1,匹配作业步骤1的要求 - 用
while True实现无限循环,替代原代码中float('inf')的复杂判断,逻辑更清晰 - 将猜对/猜错的判断逻辑移到循环内部,确保每次输入后立即验证结果
- 猜错时先提示错误信息,再累加次数,严格遵循作业步骤3的流程
- 使用f-string格式化输出语句,比原代码的字符串拼接写法更简洁易读
内容的提问来源于stack exchange,提问作者Thomas Sullivan
相关产品推荐
相关产品推荐

