Python入门:如何为简易猜数字游戏添加循环功能
解决猜数字游戏的循环与退出问题
你的代码基础没问题,但缺少循环逻辑和输入处理,直接给你修改后的可运行版本,再拆解关键部分:
import random player_name = input("What is your name?\n") print(f"Hello {player_name}!\n") random_num = random.randint(1, 9) # 这里改成1-9,和你要求的范围一致 while True: guess_input = input("Guess a number between 1-9, or enter 'q' to quit:\n") # 处理退出请求 if guess_input.lower() == 'q': print(f"Thanks for playing! The correct number was {random_num}.") break # 确保输入是有效数字,避免程序报错 try: guess = int(guess_input) # 检查数字是否在1-9范围内 if not (1 <= guess <= 9): print("Hey, stick to numbers 1-9!\n") continue except ValueError: print("C'mon, enter a number or 'q' to quit.\n") continue # 判断猜测结果 if guess == random_num: print(f"You nailed it! The number was {random_num}.") break else: # 给个小提示,让游戏更有意思 hint = "too high" if guess > random_num else "too low" print(f"Nope, that's {hint}. Try again.\n")
关键改动说明:
- 无限循环控制流程:用
while True创建持续运行的循环,直到用户猜对或者输入q退出,遇到break就终止循环。 - 退出逻辑:每次输入时先检查是不是
q,是的话直接结束游戏并告知正确答案。 - 输入验证:用
try-except处理非数字输入,避免程序崩溃;同时检查数字是否在1-9范围内,不符合就提示用户重新输入。 - 循环内获取猜测:把输入猜测的代码放到循环里,这样每次猜错后用户能重新输入,而不是只猜一次。
- 增加提示信息:告诉用户猜大了还是猜小了,提升游戏体验。
原代码的核心问题:
guess只在程序启动时输入一次,猜错后没有机会重新输入- 函数
number_game只执行一次,没有循环调用的逻辑 - 没有处理用户中途退出的需求
这样修改后,游戏就能持续运行直到猜对,也支持用户随时退出了。
内容的提问来源于stack exchange,提问作者A_Rizzle
相关产品推荐
相关产品推荐

