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 quedefling (): 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 jamaisroll_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> sursi 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.