You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何基于用户输入实现猜数字游戏重置?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', '是']负责控制整个程序的运行:
    1. 先询问用户是否想开始第一局游戏
    2. 每局游戏结束后,再次询问是否重玩
    3. 只要用户输入oui(法语“是”)或,就重新调用play函数开启新一局;输入其他内容则退出循环,结束程序
  • 加入了异常处理,防止用户输入非数字内容导致程序崩溃
  • 所有提示保持和你原代码一致的法语风格,同时兼容中文的“是”回答,方便你使用

这样修改后,就能完美实现你想要的“游戏结束后询问重玩,是则重启,否则结束”的功能啦!

内容的提问来源于stack exchange,提问作者Mike

火山引擎 最新活动