python taschenrechner hilfer?

2 Antworten

Weil du die Funktion "la" nicht aufrufst. Dein Code müsste so aussehen:

print("Wähle wie du rechnen willst")
print("1. Plus")
print("2. Minus")
print("3. Multiplizieren")
print("4. Dividieren")

op1: str = input()
if op1 == ("1"):
    print("Du Addierst:")
elif op1 == ("2"):
    print("Du Subtrahierst:")
elif op1 == ("3"):
    print("Du Multiplizierst:")
elif op1 == ("4"):
    print("Du Dividierst")
la(op1)

def la(op1):
    if op1 == "1":
        num1 = input("")
        print("+")
        num2 = input("")
        print("=" + str(int(num1) + int(num2)))
    elif op1 == "2":
        num1 = input("")
        print("-")
        num2 = input("")
        print("=" + str(int(num1) - int(num2)))
    elif op1 == "3":
        num1 = input("")
        print("*")
        num2 = input("")
        print("=" + str(int(num1) * int(num2)))
    elif op1 == "4":
        num1 = input("")
        print("/")
        num2 = input("")
        print("=" + str(int(num1) / int(num2)))
Woher ich das weiß:eigene Erfahrung – Habe schon sehr viele Programme entwickelt
Random111111 
Fragesteller
 10.10.2022, 13:19

funktioniert trotzdem nicht😅

0
guterfrager5  10.10.2022, 13:28
@Random111111

Was funktioniert denn nicht? Weißt du, was das Programm machen soll?

Es müsste theoretisch so funktionieren (was du gebaut hast)

  1. [Ausgabe] Wähle wie du rechnen willst ....
  2. [Eingabe] Operand Nummer
  3. [Eingabe] Zahl 1
  4. [Ausgabe] Operator
  5. [Eingabe] Zahl 2
  6. [Ausgabe] = (Ergebnis)

Du musst also dreimal eine Zahl eingeben. Falls du das Label "op1" nicht als Dekoration gedacht hast, solltest du ganz unten noch "goto op1" schreiben. Besser wäre allerdings, eine Schleife (also z.B. while True) dafür zu nehmen.

1
Random111111 
Fragesteller
 10.10.2022, 13:30
@guterfrager5

klappt jetzt alles, da hat nur ein la() am ende gefehlt. Aber mit goto klappt es nicht. Versuche mich jetzt an while funktionen und somit eine schleife zu machen+

1
und weiss nicht wieso mein code vor der def la(): funktion endet...

la() ist eine Funktion, die du nie aufrufst ...

Woher ich das weiß:Studium / Ausbildung – Abgeschlossenes Studium der Informatik (B.Sc.)
Random111111 
Fragesteller
 10.10.2022, 13:17

und wie rufe ich sie auf :o

0
xxxcyberxxx  10.10.2022, 13:20
@Random111111
und wie rufe ich sie auf :o

Indem du im Code eben la() nutzt. Optimalerweise änderst du den Code jedoch noch etwas ab - sodass die Funktion la auch den Operator übergeben bekommt und damit arbeiten kann

def la(op):
  # ... 

Beim Aufrufenden Code rufst du dann la mit dem Argument auf:

operation = input()
# ...
la(operation)
0
Random111111 
Fragesteller
 10.10.2022, 13:24
@xxxcyberxxx

eine frage noch, wie loope ich die funktion? Sodass nicht direkt steht process finished sondern das man noch was eingeben kann? mit return odrr bin ich doof

0
xxxcyberxxx  10.10.2022, 13:35
@Random111111
eine frage noch, wie loope ich die funktion? Sodass nicht direkt steht process finished sondern das man noch was eingeben kann?

Indem du genau das nutzt: Loops bzw Schleifen.

Als Endlosschleife würde sich zum Beispiel eine While-Schleife mit der Bedingung "True".

Du musst dann eben nur noch eine Abbruchbedingung definieren. z.B. die Eingabe "exit" vom Nutzer

odrr bin ich doof

ja ;)

0
xxxcyberxxx  10.10.2022, 13:54
@Random111111
Das hätte nicht sein müssen :(

War auch nicht ernst gemeint, weshalb da noch das ;) dazu stand.

Wenn du so Kommentare nicht willst, mach doch selbst nächstes Mal nicht so eine Bemerkung

0