Ich habe einen fuktion in Python die als Taschenrechner fungiert doch mir fehlt der Befehl dies unendlich oft wiederholt?
print(""" ==================================================== == Taschenrechner == ==================================================== """)
num1 = input("Gib die erste Zahl ein: ") oper = input("Welche Rechenoperation (+,-,*,/) soll durchgeführt werden? ") num2 = input("Gib die zweite Zahl ein: ")
num1 = int(num1) num2 = int(num2)
if (oper == "+"): print("\nDeine Rechnung: \n", num1, " + ", num2) print("Ergebnis: \n", num1 + num2)
elif (oper == "-"): print("\nDeine Rechnung: \n", num1, " - ", num2) print("Ergebnis: \n", num1 - num2)
elif (oper == "/"): print("\nDeine Rechnung: \n", num1, " / ", num2) print("Ergebnis: \n", num1 / num2)
elif (oper == "*"): print("\nDeine Rechnung: \n", num1, " * ", num2) print("Ergebnis: \n", num1 * num2)
else: print("\nKeine gültige Eingabe");
5 Antworten
Moin,
habe gerade nicht viel Zeit aber ich würde das ganze ein wenig umschreiben. Python hängt am Ende automatisch \n's ran. d.h du bräuchtest das nur am Anfang wenn du eine Zeile frei haben möchtest. Des weiteren kannst du deine If's verkürzen in dem du:
eval verwendest (wandelt strings als command um also so als würdest du es in die IDLE schreiben.) Hier muss dann nur aufgepasst werden das es wirklich eine Rechnung ist.
rechnung = input("Bitte gebe deine Rechnung ein: ")
while rechnung != "beenden":
print(eval(rechnung))
rechnung = input("Bitte gebe deine Rechnung ein: ")
ein dictionary mit den operations methoden
import operator as op
operations = {"+":op.add,
"/":op.floordiv,
"*":op.mul,
"-":op.sub}
rechnung = input("Bitte gebe deine Rechnung ein: ")
while rechnung != "beenden":
parts = rechnung.split(" ") #teilt den string in eine Liste auf; teilt wo space
num1 = int(parts[0])
num2 = int(parts[2])
oper = parts[1]
print(operations[oper](num1, num2))
rechnung = input("Bitte gebe deine Rechnung ein: ")
Ansonsten kannst du dir natürlich nur die Logik mit der While Schleife als hilfe nehmen.
Boa diese Code Snipped option bringt mich jedes mal auf die Palme. Sorry
Du solltes mit Funktionsaufrufen arbeiten, das vereinfacht das ganze enorm.
In deiner Main() wirst du dann eine While-Schleife haben, welche so lange läuft, wie der zu überprüfende Wert true (boolean) ist. Nach jedem Durchlauf musst du den Benutzer fragen ob er noch möchte und ggf. den Überprüfuingswert auf false setzen
Also du könntest es mit einer while schleife wiederholen. Also ich habe dann geschrieben. Wenn du neue Rechnung beginnen willst dann schreibe neu
while neu == neu:
Eine Endlosschleife wird folgendermaßen erstellt:
while True: # Deine Anweisung wird ewig wiederholt.
print("Endlosschleife") #Den Code kannst du natürlich ändern. Vergiss die Einrückungen nicht! 4 mal Leertaste!
Bau einfach eine WHILE - Schleife um das ganze und mach eine Eingabe welche auf "Q" abfragt. Die Schleife soll dann so lange laufen, bis "Q" eingegeben wird.
Deine Formatierung solltest du übersichtlicher gestalten, macht alles einfach zu lesen ;-)
Naja, ich behersche zwar diverse Programmiersprachen, aber Python gehört nicht dazu. Die Logik ist immer gleich, nur die Syntax ist anders. Evtl. stößt ein Python-Fuchs auf deine Frage ;-)
bin zimlich unbeholfen was python angeht könntest du mir da helfen?:D