Seite 1 von 1
Programmabfrage: Neustart
Verfasst: Sonntag 6. November 2016, 10:22
von NeuINFling
Hallo zusammen,
gestern habe ich ein kleines Script erstellt, bei dem ich lediglich einen Neustart-Befehl geben möchte. Beispielsweise über eine While-Schleife. Hier im Forum und auch im Web habe ich ein wenig nachlesen. Aber aus irgendeinem Grund klappt es nicht. Entweder wird die Schleife immer endlos oder bricht immer ab.
Hat jemand eine Idee, wie es lauten könnte?
Code: Alles auswählen
while (True):
variable_a = float(input ("Please enter your first variable: "))
variable_b = float(input ("Please enter your second variable: "))
Multiplikation = (variable_a * variable_b)
Addition = (variable_a + variable_b)
print("")
print("reultat for multiplication is rounded (decimal places): ", (round(Multiplikation, 2)))
print("reultat for addition is rounded (decimal places): ", (round(Addition, 2)))
print()
input ("Do you want to restart this program (y/n)? ")
einen schönen Sonntag

Re: Programmabfrage: Neustart
Verfasst: Sonntag 6. November 2016, 10:33
von nezzcarth
NeuINFling hat geschrieben:
Hat jemand eine Idee, wie es lauten könnte?
Na ja, du fragst in der letzten Zeile nach einer Eingabe, machst dann aber gar nichts damit. Du kannst dir beispielsweise die Eingabe merken und wenn sie 'n', 'no' o. ä. entspricht, die Schleife mit 'break' verlassen.
Ansonsten: In Zeile 1, 4 und 5 kannst du auf die Klammern verzichten. Mein Vorschlag wäre, von dem 'variable_' Präfix abzusehen. Für eine leere Ausgabe würde 'print()' statt 'print("") reichen; weiter unten machst du es richtig, da wäre aber zu erledigen, ob man den Zeilenvorschub nicht vielleicht in der vorangegangenen Zeile erledigen möchte. 'Multiplikation' und 'Addition' sollten der Konvention entsprechend ausschließlich in Kleinbuchstaben geschrieben werden.
Re: Programmabfrage: Neustart
Verfasst: Sonntag 6. November 2016, 10:50
von NeuINFling
Hi
danke für die Tipps der Eingabe!
zu dem eigentlichen Problem...Ja, ab Zeile 10, also dem Input bezgl. des Neustarts oder Abbruch, habe ich bewusst einen Vorschlag weggelassen, weil alle meine Vorschläge nicht funktioniert haben.
Code: Alles auswählen
while True:
variable_a = float(input ("Please enter your first variable: "))
variable_b = float(input ("Please enter your second variable: "))
multiplication = variable_a * variable_b
addition = variable_a + variable_b
print()
print("reultat for multiplication is rounded (decimal places): ", (round(multiplication, 2)))
print("reultat for addition is rounded (decimal places): ", (round(addition, 2)))
print()
input ("Do you want to restart this program (y/n)? ")
n == False
if n:
break
Auch habe ich im Web etwas von upper() gelesen. Ist dies auch eine (bessere) Möglichkeit?
Re: Programmabfrage: Neustart
Verfasst: Sonntag 6. November 2016, 11:03
von nezzcarth
NeuINFling hat geschrieben:
Auch habe ich im Web etwas von upper() gelesen. Ist dies auch eine (bessere) Möglichkeit?
Jetzt bindest du den festen Wert 'False' in jedem Durchlauf an den Namen 'n'. Das kann nicht funktionieren, denn eigentlich möchtest du doch, dass 'n' den eingegebenen Wert hat. Die Normalisierung des Eingabestrings mit '.upper()'/'.lowre()" ist eine von mehreren Techniken, die man anwenden kann, um die Abfrage etwas toleranter gegenüber Eingabevariationen zu gestalten. Aber vorher sollte sie erst einmal funktionieren

Re: Programmabfrage: Neustart
Verfasst: Sonntag 6. November 2016, 11:28
von NeuINFling
....dass 'n' den eingegebenen Wert hat....
Wie meinst du das?
"n" = ? (irgendein Variablenname also z. Bsp. "stop"
Re: Programmabfrage: Neustart
Verfasst: Sonntag 6. November 2016, 11:33
von nezzcarth
NeuINFling hat geschrieben:
Wie meinst du das?
Äh, du forderst den Benutzer doch mit 'input ("Do you want to restart this program (y/n)? ")' dazu auf, einen Wert einzugeben, entweder 'y' oder 'n'. Aber du merkst dir den Wert nirgendwo. Was eigentlich passieren müsste, ist, dass der Name 'n' den Wert hat (ich würde übrigens einen anderen Namen vorschlagen; 'n' ist nichtssagend und kann hier sogar verwirrend sein), der eingeben wird, damit du später prüfen kannst, ob der Wert 'n' ist, um das Programm dann zu beenden...
Re: Programmabfrage: Neustart
Verfasst: Sonntag 6. November 2016, 16:55
von NeuINFling
Code: Alles auswählen
while True:
variable_a = float(input ("Please enter your first variable: "))
variable_b = float(input ("Please enter your second variable: "))
multiplication = variable_a * variable_b
addition = variable_a + variable_b
print()
print("reultat for multiplication is rounded (decimal places): ", (round(multiplication, 2)))
print("reultat for addition is rounded (decimal places): ", (round(addition, 2)))
print()
question = input ("Do you want to restart this program (y/n)? ")
if question == "n":
break
Ah!!!! Stimmt

Danke für die gute Hilfe