Programmation python code if
Résolu
lecorse
Messages postés
130
Statut
Membre
-
[Dal] Messages postés 6373 Statut Contributeur -
[Dal] Messages postés 6373 Statut Contributeur -
Bonjour à tous,
Merci pour votre aide.
liste1=["I have","you have","he-she has","we have","you have","they have"] print(liste1) #pour test b = liste1 print (b) # pour test # jusque là OK b = liste1 a = input("conjugues le verbe avoir au présent en anglais : ") print(a) # test a = b donc = liste1 # C'est ici que ça marche pas , résultat toujours faux !!!! je ne trouve pas le problème if (a) == (b): print("exact") else print("faux : réponse exacte ", b )
Merci pour votre aide.
A voir également:
- Programmation python code if
- Code ascii - Guide
- Citizen code python avis - Accueil - Outils
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
2 réponses
Salut lecorse,
Il manque un
Sur le reste de ta question :
1.
Je pense que tu dois utiliser Python3.
Dans Python3,
Comme tu compares un objet
2.
Ton code fonctionne par contre avec Python2.
En effet, le comportement d'
Ce comportement n'existe plus pour Python3.
3.
En Python3, pour évaluer une
https://docs.python.org/3/library/ast.html#ast.literal_eval
Dal
Il manque un
:à la fin de
elseen ligne 21, dans le code que tu as posté sur le forum, sinon ton code a une erreur de syntaxe et ne risque pas de s'exécuter du tout.
Sur le reste de ta question :
1.
Je pense que tu dois utiliser Python3.
Dans Python3,
input()va retourner un objet
String.
Comme tu compares un objet
Stringà un objet
List, Python te confirme qu'une chaîne n'est pas une liste et que les deux objets ne remplissent pas la condition d'égalité et ton
ifdonne toujours faux, même si quelque chose correspondant au contenu et à la syntaxe de la liste est exactement saisi.
2.
Ton code fonctionne par contre avec Python2.
En effet, le comportement d'
input()avec Python3 a changé par rapport à la version 2 de Python, où la fonction
input()du langage procédait à une évaluation de ce qui était saisi et retournait un type dynamique en fonction de la saisie (la saisie d'une liste interprétable par Python 2, donnait une variable de type liste, la saisie d'un entier donnait une variable de type int, etc.).
Ce comportement n'existe plus pour Python3.
3.
En Python3, pour évaluer une
Stringen une liste (ou autre chose), tu peux utiliser le module
astet la méthode
literal_eval...
https://docs.python.org/3/library/ast.html#ast.literal_eval
import ast a = input("conjugue le verbe avoir au présent en anglais : ") a = ast.literal_eval(a)
Dal