0
votes

J'ai fait un script vraiment de base à l'aide de Python (je suis nouveau à cela) et je ne sais pas pourquoi cela ne fonctionne pas car il devrait fonctionner

Le problème est dans la ligne 19, où le si code> est.

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>

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}
    ===========================
    ===========================
        """)




2 commentaires

moins et plus 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.


5 Réponses :


0
votes

Vous rejoignez des listes en formant un tuple: xxx pré>

Ce que vous voulez réellement faire est d'ajouter les listes ensemble: p>

if operation not in minus + plus:


1 commentaires

Merci frère qui était en fait facile, je suis un peu mutile lol



0
votes

opération non in (moins, plus) sera toujours vrai. opération est une chaîne, et (moins, plus) est un tuple contenant deux listes.

Si vous souhaitez tester si la chaîne Opération est dans la liste moins ou la liste plus , vous pouvez plutôt utiliser: xxx


0 commentaires

0
votes

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: xxx

vous dites "Si l'opération ne correspond pas à [" - "," moins "] ou [" + "," plus "]"

En d'autres termes, vous comparez l'entrée de l'utilisateur à une liste de 2 chaînes!

Vous pouvez plutôt écrire: xxx

et votre programme fonctionnera simplement bien


0 commentaires

1
votes

L'expression 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.

Je recommanderai de créer une liste combinée d'opérations valides. P> xxx pré>

puis testez pour voir si le test Fonctionnement que l'entrée de l'utilisateur est dans cette liste. P>

if operation not in valid_operations:
    print("Invalid Operation")
else:
    ...


0 commentaires

0
votes

Il suffit de changer si le bloc de code xxx

vous avez écrit: xxx

Ceci sera toujours vrai, car opération 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 .


0 commentaires