Je suis nouveau à Python et j'essaie d'exécuter ce programme de boucle imbriqué simple, mais mon code ne montre aucune erreur ni exécutant la fonction
import random player_decision = input("Do you want to roll the Dice ? Type y or n: ").lower() if player_decision == "y": game_on = True else: game_on = False print("Thanks for your time!!") while game_on is True: print("Welcome") roll_dice = input("Press R to roll the dice or Q to quit the game ").upper() while roll_dice == "R": def rolling(): outcome = random.randint(1,7) print(outcome) rolling()
3 Réponses :
juste changer pendant que roll_dice == "r" code> sur
si roll_dice == "r" code> comme indiqué par Aryerez dans les commentaires
Vous avez 2 boucles infinies ici pendant que game_on est true: code> et
si roll_dice == "r": code> (une fois que vous les entrez). Vous devez changer de condition d'entrée en boucle dans chaque itération pour quitter la boucle.
Vous définissez le déplacez simplement le même niveau. p> roulant () code> dans le
si roll_dice == "r": code> niveau suivant, mais vous appelez le
roulant () code> dans le niveau de hauteur.
Indent
roulant () code> au même niveau que
defling (): code>, où vous l'avez maintenant à l'extérieur de la boucle. De plus, vous ferez une boucle pour toujours parce que vous ne changez jamais
roll_dice code>, donc une fois que vous entrez dans la boucle, vous ne pouvez pas vous échapper.
Modifiez le
pendant que roll_dice == "r": code> sur
si roll_dice == "r": code>
Pourriez-vous décrire le flux prévu de votre jeu? Comme il est affiché, j'obtiens la forte impression qu'il y a plusieurs étapes sur le chemin qui ne font pas le comportement du programme comme vous vous attendez. 1 Fix rapide Vous pouvez ajouter immédiatement: Ne définissez pas votre fonction dans la boucle tandis que. La fonction est créée à nouveau et à nouveau de cette façon.