python taschenrechner hilfer?
hi ich mache einen taschenrechner in python und weiss nicht wieso mein code vor der def la(): funktion endet...
mache alles in hardcode um mehr in python zu lernen...
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")
def la():
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)))
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)))
Was funktioniert denn nicht? Weißt du, was das Programm machen soll?
Es müsste theoretisch so funktionieren (was du gebaut hast)
- [Ausgabe] Wähle wie du rechnen willst ....
- [Eingabe] Operand Nummer
- [Eingabe] Zahl 1
- [Ausgabe] Operator
- [Eingabe] Zahl 2
- [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.
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+
und weiss nicht wieso mein code vor der def la(): funktion endet...
la() ist eine Funktion, die du nie aufrufst ...
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)
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
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 ;)
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
funktioniert trotzdem nicht😅