Le loop de mon code ne marche pas [DÉBUTANT]

Fermé
End0rsii - 29 juil. 2022 à 15:53
 End0rsii - 1 août 2022 à 12:47

Bonjour,

Bonjour tout le monde.


Pour des raisons d'apprentissage j'ai ai essayé de coder un robot qui travaille dans un café et reçoit les commandes des clients en utilisant la fonction input. 


À la fin de mon exercice je voudrais que mon robot puisse demander au client s'il a terminé de manger/boire (Yes or No question). S'il n'a pas fini, le robot s'excusera, attendra quelques secondes et demandera à nouveau jusqu'à ce que le client dise Oui. Le code se terminera ainsi. Voici le code :

fin = (input(" Have you finished your coffee sir ? (Yes or No answer)\n\n"))

while fin == "No" :
     print(" Oh ! Sorry for disturbing you !")
     input(" Have you finished your coffee ? (Yes or No answer)\n\n")
     if fin == "Yes" :
          break

if fin == "Yes" :
       print("All right ! I hope you liked your coffee !\n\nThank you for coming here ! See you next time !                            Goodbye !")


Si je dit No la première fois cela marche parfaitement. Le terminal me sort la bonne phrase. Cependant, si à la suite je veux dire Yes, c'est la même phrase qui sort à chaque fois.

Si vous essayez le code vous comprendrez se que j'essaye d'expliquer.

Est-ce que quelqu'un pourrait m'éclairer sur la façon de corriger ce problème ?

Merci pour vos réponses


Windows / Opera 89.0.4447.64

A voir également:

3 réponses

Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 29 juil. 2022 à 16:17

Bonjour

on y verrait plus clair si tu affichais ton code avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code

Visuellement, ça doit ressembler à ça:

for k in range(10):
    print(k)

Il manque fin = devant input(" Have you finished your coffee ? (Yes or No answer)\n\n") dans la boucle

0
jee pee Messages postés 39706 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 10 mai 2024 9 269
Modifié le 29 juil. 2022 à 16:43

Bonjour,

Il existe de nombreuses façons de faire, par exemple :

fin = "No"
while fin != "Yes" :
    fin = (input(" Have you finished your coffee sir ? (Yes or No answer)\n\n"))
    if fin == "Yes" :
         print("All right ! I hope you liked your coffee !\n\nThank you for coming here ! See you next time !                            Goodbye !")
    else:
         print(" Oh ! Sorry for disturbing you !")

while True:
    fin = (input(" Have you finished your coffee sir ? (Yes or No answer)\n\n"))
    if fin == "Yes" :
         print("All right ! I hope you liked your coffee !\n\nThank you for coming here ! See you next time !                            Goodbye !")
         break
    else:
         print(" Oh ! Sorry for disturbing you !")

Et dans ton code tu as oublié dans ta boucle fin = sur l'input


0

Merci beaucoup de m'avoir aidé jee jee j'ai compris mon erreur !

0
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
29 juil. 2022 à 17:59

Et dans input, il n'y a pas besoin des parenthèses extérieures ...

0