Le problème est dans la ligne 19, où le Ainsi, lorsque vous exécutez le code, il devrait vous demander un premier numéro, puis l'opération mathématique (+, plus ou -, moins) et enfin pour le deuxième numéro. P> Cela fonctionne parfaitement lorsque vous ajoutez (plus), mais lorsque vous essayez de soustraire, cela vous montre le message "Opération invalide", je " J'ai déjà essayé d'utiliser d'autres opérateurs logiques, mais cela ne fonctionne tout simplement pas d: p> pls m'explique quel est le problème, car je ne peux pas le voir. P> si code> est.
minus = ["-","minus"]
plus = ["+", "plus"]
print("""
===========================
CALCULATOR
===========================
1 2 3 +
4 5 6 -
7 8 9
0 Total:
===========================
===========================
""")
n1 = int(input("First Number: "))
operation = input("+ or - ")
if operation not in (minus,plus):
print("Invalid Operation")
else:
n2 = int(input("Second Number: "))
if operation in minus:
total_minus = n1-n2
print(f"""
===========================
CALCULATOR
===========================
1 2 3 +
4 5 6 -
7 8 9
0 Total: {total_minus}
===========================
===========================
""")
elif operation in plus:
total_plus = n1 + n2
print(f"""
===========================
CALCULATOR
===========================
1 2 3 +
4 5 6 -
7 8 9
0 Total: {total_plus}
===========================
===========================
""")
5 Réponses :
Vous rejoignez des listes en formant un tuple: Ce que vous voulez réellement faire est d'ajouter les listes ensemble: p> if operation not in minus + plus:
Merci frère qui était en fait facile, je suis un peu mutile lol
Si vous souhaitez tester si la chaîne opération non in (moins, plus) code> sera toujours vrai.
opération code> est une chaîne, et
(moins, plus) code> est un tuple contenant deux listes.
Opération code > est dans la liste
moins code> ou la liste
plus code>, vous pouvez plutôt utiliser: p>
Pour moi, votre code ne fonctionne pas avec + ou -! Je ne sais pas pourquoi cela fonctionne pour vous avec +, comme je pense que cela ne devrait pas!
Vous êtes correct que le problème est votre relevé IF.
Lorsque vous écrivez: p> vous dites "Si l'opération ne correspond pas à [" - "," moins "] ou [" + "," plus "]" p> En d'autres termes, vous comparez l'entrée de l'utilisateur à une liste de 2 chaînes! p> Vous pouvez plutôt écrire: p> et votre programme fonctionnera simplement bien p> p>
L'expression Je recommanderai de créer une liste combinée d'opérations valides. P> puis testez pour voir si le test Fonctionnement que l'entrée de l'utilisateur est dans cette liste. P> Opération non in (moins, plus) code> est testant pour voir si
opération code> est l'une des listes
moins code> ou
ou
Plus code> dans le tuple
(moins, plus) code>. Puisque c'est une chaîne, ce ne sera jamais de ces valeurs.
if operation not in valid_operations:
print("Invalid Operation")
else:
...
Il suffit de changer si le bloc de code vous avez écrit: p> Ceci sera toujours vrai, car opération code> ne sera jamais dans les deux listes (plus et moins) de sorte que l'instruction est fausse et que vous avez écrite "non in", non de faux est vrai, c'est la raison pour laquelle vous obtenez toujours "l'opération invalide" dans votre bloc IF . p> p>
moins code> et
plus code> sont les deux listes. Pour correspondre, la chose que vous testez devrait également être une liste.
Je ne vois pas comment cela fonctionne pour plus, comme prétendu.