Problème avec une fonction

Smil3x Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
Smil3x Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir,

j'ai un problème avec ma fonction. En fait, peu importe la touche que je fais c'est toujours l'option "a" ou "A" qui est choisit. Que je mette F pour fuir ou même une autre lettre du clavier. Je ne comprends pas étant donner que mes conditions me semblent correctes.

Merci de m'aider.

from Guerrier import Guerrier1
from Squelette import Squelette1

def combat(joueur, mob):
    while mob.vie >0:
        choix = input("Pour attaquer appuyer sur A. Pour fuir appuyer sur F.")
        if choix == "a" or "A":
            mob.vie -= joueur.attaque
            print("Vous mettez :", joueur.attaque, "de dégâts !")
            print("Il reste :", mob.vie, "points de vie au", mob.nom)
            if mob.vie <= 0:
                print("Le", mob.nom, "est mort.")
            else :
                joueur.vie -= mob.attaque
                print("Le", mob.nom, "vous a mis", mob.attaque, "point de dégâts !")
                print("Il vous reste", joueur.vie, "points de vie")
                if joueur.vie <= 0 :
                    print("Vous êtes mort")
                    break
        elif choix == "f" or "F":
            print("Vous avez pris la fuite.")
        else :
            print("Je n'ai pas compris.Pour attaquer appuyer sur A. Pour fuir appuyer sur F.")

combat(Guerrier1, Squelette1)

2 réponses

Utilisateur anonyme
 
0
Smil3x Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Je viens de lire l’article mais je ne comprends pas mon erreur dans ce code. Si le choix est égal à « A » ou « a » on attaque. Si le choix est égal a « f » ou « F » c’est la fuite. Le programme lorsque je rentre « F » ou « f » me fait attaquer.
0
Utilisateur anonyme
 
Ici
if choix == "a" or "A":

Cette ligne veut dire, si choix vaut "a" ou si "A".
Or pour python "A" n'est pas faux, donc ça veut dire si choix vaut "a" ou si vrai.
Donc c'est toujours vrai.

Dans l'article, dans le paragraphe sur le ou, on te montre qu'il faut demander si choix vaut "a" ou si choix vaut "A"
0
Smil3x Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Merci, bonne soirée.
0