Je travaille sur un jeu de rock, de papier, de ciseaux et j'ai utilisé plusieurs fonctions en tant que back-end pour le programme. Mon problème est que je ne veux pas d'autres intrants autres que R, P, S, Q, R, S, P, Q. Donc, j'ai configuré une boucle tandis que si l'entrée n'a pas égalé ces lettres, que la boucle continuera à courir. Cependant, même si j'avais rempli ses conditions, la boucle continuera de continuer à courir.
4 Réponses :
Chaque lettre n'est pas r ou non p car aucune lettre n'est à la fois r et p. Donc, votre pendant que code> ne peut jamais se terminer. P>
Il y a deux points ici:
Tout d'abord, une fonction est une fonction (supports d'utilisation). Deuxièmement, vous devez utiliser 'et' au lieu de 'ou'. Cependant, vous pouvez le réécrire comme ci-dessous. P>
#Main Program print('Welcome to Rock, Paper, and Scissors. You know the rules already. But, we will play for as long as you want. If you win more rounds, then you survive. If I win though, well... you already know.') w = input('Choose a weapon(r for rock, p for paper, s for scissors, q for quit)!: ').lower() while w not in 'rpsq' or len(w) > 1: w = input('Choose a weapon(r for rock, p for paper, s for scissors, q for quit)!: ').lower() else: if w == 'q': record(1) sys.exit else: if game(w): memory(w, fingers) respond(numrock, numpaper, numscissors) hand1(fingers)
Vous pouvez éviter la vérification len code> en modifiant la condition sur
tandis que w w non in ('r', 'p', 's', 'q'): code> (
( code> > Le tuple code> S de constantes est mis en cache non contrairement à
str code>), de sorte que le coût devrait être similaire.
Peut-être que si vous configurez un ensemble () de réponses admissibles d'abord, vous pourriez obtenir ce que vous voulez. ALORS P> >>> while w not in aok:
... print("Invalid entry. Please re-try"
... w = input("Please enter ....")
...
Vous n'avez pas utilisé la forme correcte de la fonction Il est toujours préférable d'informer l'utilisateur pour tout invalide ou
Entrée incorrecte demandant plutôt à nouveau. p>
blockQuote> Vous pouvez modifier votre code comme suit pour plus de clarté: p> inférieure () code>. Vos conditions n'étaient également pas correctes.
Vous vouliez probablement dire
et code> au lieu de
ou code>.