J'ai fait ce code de calcul de la calculatrice et pour des raisons pour lesquelles je veux savoir, seule la première instruction s'ils se déroulent même si c'est faux. Le second fonctionne après avoir copié une réponse que j'ai trouvée ici, mais je ne comprends toujours pas, comment sont-ils différents?
Premier code: P>
while True:
print("Welcome to my calculator")
print("Type end")
print("Pick one of the options: ")
print("Add, Sub, Div, Mul")
user_input1 = input()
if user_input1 == "end":
break
user_input2 = int(input("Select the first number. \n"))
user_input3 = int(input("Select the second number. \n"))
if user_input1 == ("Add") or user_input1 == ("add"):
answer = user_input2 + user_input3
print(answer)
elif user_input1 == ("Sub") or user_input1 == ("sub"):
answer = user_input2 - user_input3
print(answer)
elif user_input1 == ("Div") or user_input1 == ("div"):
answer3 = user_input2 / user_input3
print(answer3)
elif user_input1 == ("Mul") or user_input1 == ("mul"):
answer4 = user_input2 * user_input3
print(answer4)
else:
print("rip")
4 Réponses :
Cela ne fait pas ce que vous semblez penser qu'il fait:
if user_input1 in ("Add", "add"):
La différence est votre utilisation de la déclaration Aussi votre ou code>. En Python 3, tous les nombres et chaînes non nuls ont vraie code> valeurs de vérité, alors disant user_input1 == ("Ajouter") ou ("Ajouter") code> est la même chose Comme disant user_input1 == ("Ajouter") ou true code>, qui est toujours vrai code>. p>.
tandis que code> est le mauvais indençant, il semble donc ne rien faire. Est-ce destiné? P>
Lorsque vous faites Un moyen d'éviter que ceci est de mettre tous les casquettes comme ceci: user_input1 == ("Ajouter") ou ("Ajouter") CODE> Il évalue séparément les deux côtés du == code>, donc il va donc faire (" Ajouter ") ou (" Ajouter ") qui ne conservera que la première valeur non vide dans ce cas" Ajouter ".
C'est pourquoi vous devez faire les évaluations séparément:
user_input1 == ("Ajouter") ou user_input1 == ("Ajouter") code> p>
user_input1.upper () == ('Ajouter') CODE> P>
En réalité, la seconde réponse est
while True:
print("Welcome to my calculator")
print("Type end")
print("Pick one of the options: ")
print("Add, Sub, Div, Mul")
user_input1 = input()
if user_input1 == "end":
break
user_input2 = int(input("Select the first number. \n"))
user_input3 = int(input("Select the second number. \n"))
if user_input1 == ("Add") or user_input1 == ("add"):
answer = user_input2 + user_input3
print(answer)
elif user_input1 == ("Sub") or user_input1 == ("sub"):
answer = user_input2 - user_input3
print(answer)
elif user_input1 == ("Div") or user_input1 == ("div"):
answer3 = user_input2 / user_input3
print(answer3)
elif user_input1 == ("Mul") or user_input1 == ("mul"):
answer4 = user_input2 * user_input3
print(answer4)
else:
print("rip")