Frage von Romanqaywsx, 67

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");

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von LifeArtist1, 19

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.

Kommentar von LifeArtist1 ,

Boa diese Code Snipped option bringt mich jedes mal auf die Palme. Sorry

Antwort
von Handlanger89, 35

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

Antwort
von J0eSpivy, 35

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 ;-)


Kommentar von Romanqaywsx ,

bin zimlich unbeholfen was python angeht könntest du mir da helfen?:D

Kommentar von J0eSpivy ,

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 ;-)

Kommentar von Romanqaywsx ,

Ja aber Trotzdem THX.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten