Mauvaise intérprétation de Python avec if

Bonjour,
lorsque que je rentre le code ci dessous, à la question "quel est votre prénom", quoiqu'il arrive j'ai la réponse du if "BIenvenue Flo" et non pas du else "Bienvenue {nom}", même si je ne rentre pas Florent ou florent.
J'espère pouvoir me faire comprendre ;)
Merci
Salut !
C'est une erreur très courante, je crois me souvenir d'en avoir parlé quelque part, dans un mentorat ou sur YouTube mais je ne retrouve plus. Je me souviens avoir fait cette erreur au tout début aussi ;)
En fait il faut répéter ta condition.
Une chaîne de caractères est évaluée comme vraie (True), du moment qu'elle contient au moins 1 caractère.
Dans ton cas, si on "converti" ta condition en booléens, on a donc :
-
nom == "Florent"seraTruesinomcontient la chaîne de caractères"Florent",Falsesinon. -
"florent"sera toujours vrai car tu ne vérifie rien ici.
Ça reviens donc à faire :
if nom == "Florent" or True:
Et donc peu importe si ta première condition est vraie ou non, la deuxième le sera toujours.
Il faut donc répéter la condition :
if nom == "Florent" or nom == "florent":
Heureusement, tu verras par la suite, qu'en connaissant quelques techniques, on peut éviter d'avoir à répéter ces conditions, dans le cas où tu as beaucoup de choses à vérifier.
Dans ton cas par exemple, tu pourrais faire :
if nom.lower() == "florent":
Ou encore :
if nom.lower() in ["flo", "florent", "floren", "florant", "floran"]:
J'espère que c'est plus clair :)
Merci pour la (incroyable)rapidité de la réponse. je comprends l'erreur.
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte