möchte gerne operator auswählen bei rechen-programm

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
anfängerpython
User
Beiträge: 3
Registriert: Samstag 11. September 2010, 20:58

Code: Alles auswählen

while True:
    zahl1 = int(input("geben sie eine zahl ein"))
    if zahl1 == "ende":
        break
    
    zahl2 = int(input("geben sie eine zahl ein"))
    if zahl2 == "ende":
        break

    operator = int(input("geben sie + , - , * oder / ein"))


    ergebnis = zahl1 operator zahl2
    print(ergebnis)
operator bei "ergebnis = zahl1 operator zahl2" ist rot angestrichen und somit ein syntax fehler.
ich weiß nicht wie man den operator sonst auswählen kann oder was an meiner eingabe falsch ist.
Bittte um hilfe
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ein Beispiel zum selbst spielen:

Code: Alles auswählen

import operator

operators = {
    '+' : operator.add,
    '-' : operator.sub,
    '*' : operator.mul
}

operation = operators[input("geben sie + , - oder * ein")]
ergebnis = operation(zahl1, zahl2)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Nein, `operator` ist nicht rot, weil es ein Syntaxfehler ist, sondern weil es ein Modul ist. In dem Fall auch das, das du suchst.
Was denkst du denn, macht

Code: Alles auswählen

operator = int(input("geben sie + , - , * oder / ein"))
?

Code: Alles auswählen

import operator
operation = input("+,-,* or /")
function = { '+' : operator.add,
             '-' : operator.sub,
             '*' : operator.mul,
             '/' : operator.div }[operation]
result = function(first, second)
anfängerpython
User
Beiträge: 3
Registriert: Samstag 11. September 2010, 20:58

danke wie kann ich dividieren ergänzen
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

anfängerpython hat geschrieben:danke wie kann ich dividieren ergänzen
Mit ein wenig Eigeninitiative (Doku des operator-Moduls lesen) oder cofis Beitrag beachten.
Antworten