如何基于用户输入实现猜数字游戏重置?Python代码问题求助
猜数字游戏重玩功能修复方案
嘿,我来帮你搞定这个猜数字游戏的重玩功能!先梳理下你现有代码里的几个小问题,再给你完整的可运行版本:
现有代码的问题
- 函数
play里的while want_to_...语句没写完,会直接导致语法错误 - 初始的游戏询问没有做逻辑判断,不管用户回答什么都会直接进入游戏函数
- 重玩的逻辑位置不对,应该放在每一局游戏结束后,而不是游戏开始前
修正后的完整代码
import random def play(name): randomNumber = random.randrange(0, 100) guessed = False print(f"Bonjour {name} ! Je pense à un nombre entre 0 et 99. Devine-le !") while not guessed: try: guess = int(input("Entrez votre proposition : ")) if guess < randomNumber: print("Trop petit ! Essaie encore.") elif guess > randomNumber: print("Trop grand ! Essaie encore.") else: print(f"Félicitations {name} ! Tu as trouvé le nombre {randomNumber} !") guessed = True except ValueError: print("Désolé, entrez un nombre valide s'il vous plaît.") # 主程序逻辑 name = input('Entrez votre nom: ') want_to_play = input(f"{name}, Veux-tu jouer un jeu ? (oui/non) ").strip().lower() while want_to_play in ['oui', '是']: play(name) # 游戏结束后询问是否重玩 want_to_play = input("Veux-tu jouer à nouveau ? (oui/non) ").strip().lower() print("Merci d'avoir joué ! À bientôt !")
代码说明
- 把核心游戏逻辑封装在
play函数里,每调用一次就运行一局游戏 - 主循环
while want_to_play in ['oui', '是']负责控制整个程序的运行:- 先询问用户是否想开始第一局游戏
- 每局游戏结束后,再次询问是否重玩
- 只要用户输入
oui(法语“是”)或是,就重新调用play函数开启新一局;输入其他内容则退出循环,结束程序
- 加入了异常处理,防止用户输入非数字内容导致程序崩溃
- 所有提示保持和你原代码一致的法语风格,同时兼容中文的“是”回答,方便你使用
这样修改后,就能完美实现你想要的“游戏结束后询问重玩,是则重启,否则结束”的功能啦!
内容的提问来源于stack exchange,提问作者Mike




