Ich habe einen fuktion in Python die als Taschenrechner fungiert doch mir fehlt der Befehl dies unendlich oft wiederholt?

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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.


LifeArtist1  01.07.2016, 13:27

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

0

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! 
Woher ich das weiß:Hobby

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



Romanqaywsx 
Fragesteller
 01.07.2016, 12:02

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

0
J0eSpivy  01.07.2016, 12:08
@Romanqaywsx

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

0