Ceci est mon code,
if diff != "1" or diff != "2" or diff != "3":
print("You need to pick either 1, 2 or 3n")
Pour une raison quelconque, le résultat est,
Pick a difficulty:
1) Easy
2) Medium
3) Hard
>> 2
You need to pick either 1, 2 or 3
Je veux que l'instruction if vérifie si la variable diff n'est pas égal à des chaînes 1, 2 et 3. Mais quand je mets soit 1, 2 ou 3, le message d’erreur indiquant quand diff n’est pas égal aux nombres est imprimé. Pourquoi cela se produit-il?
Réponses:
2 pour la réponse № 1Pour appliquer la logique "pas n'importe lequel", vous voudrez vérifier s'il s'agit de l'un des résultats valides, puis inverser. (NI)
if not (diff == "1" or diff == "2" or diff == "3"):
Ou appliquer Le théorème de DeMorgan ce serait équivalent à "pas égal à 1 ET pas égal à 2 ET pas égal à 3"
if diff != "1" and diff != "2" and diff != "3":
bien sûr, le python a aussi le in
et not in
opérateur qui rend ce beaucoup plus propre:
if diff not in ("1", "2", "3"):
0 pour la réponse № 2
Vous devez utiliser et au lieu de ou. Si vous entrez 1, alors diff != "1"
renvoie True.
Votre code devrait ressembler à ceci:
if diff != "1" and diff != "2" and diff != "3":
print("You need to pick either 1, 2 or 3n")