Befehl stop() ?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Blue Flare
User
Beiträge: 21
Registriert: Dienstag 7. September 2010, 18:34

Code: Alles auswählen


print("Wählen Sie eine Funktion aus:")
print("Wenn Sie eine Addition durchführen möchten drücken Sie die 1")
print("Wenn Sie eine Subtraktion durchführen möchten drücken Sie die 2")
print("Wenn Sie eine Multiplikation durchführen möchten drücken Sie die 3")
print("Wenn Sie eine Division durchführen möchten drücken Sie die 4")
Menueauswahl = int(input())

if Menueauswahl >= 5:
    print("Error")

if Menueauswahl == 0:
    print("Error")


if Menueauswahl == 1:
    print("Bitte geben Sie den ersten Summanden ein")
    erstersummand = input()
    print("Bitte geben Sie den zweiten Summanden ein")
    zweitersummand = input()
    Ergebnis = erstersummand + zweitersummand
    print("Ergebnis:")
    print(Ergebnis)

elif Menueauswahl == 2:
    print("Bitte geben Sie den Minuend ein")
    Minuend = input()
    print("Bitte geben Sie den Subtrahen ein")
    Subtrahend = input()
    Ergebnis = Minuend - Subtrahend
    print("Ergebnis:")
    print(Ergebnis)

elif Menueauswahl == 3:
    print("Bitte geben Sie den ersten Faktor ein")
    Faktoreins = input()
    print("Bitte geben Sie den zweiten Faktor ein")
    Faktorzwei = input()
    Ergebnis = Faktoreins * Faktorzwei
    print("Ergebnis:")
    print(Ergebnis)

elif Menueauswahl == 4:
    print("Bitte geben Sie den Dividend ein")
    Dividend = float(input())
    print("Bitte geben Sie den Divisor ein")
    Divisor = float(input())
    if Divisor == 0:
        print("Error")
        stop()
    Ergebnis = Dividend / Divisor
    print("Ergebnis:")
    print(Ergebnis)

    
ich habe hier einen rechner programmiert allerdings brauche ich bei der division (Menueauswahl 4) einen befehl der das programm stoppt...
stop() gibt es nicht...
bitte hilfe !
BlackJack

@Blue Flare: Du brauchst da keine Möglichkeit das Programm zu beenden. Das was nach dem ``if``-Zweig steht soll nur ausgeführt werden wenn die Bedingung beim ``if`` nicht zugetroffen hat. Schau Dir doch mal an was es zusätzlich zum ``if`` noch so gibt.

Alternativ könntest Du mit ``try``/``except`` auch auf die Ausnahme reagieren die eine Division durch Null zur Folge hat.
Blue Flare
User
Beiträge: 21
Registriert: Dienstag 7. September 2010, 18:34

ja kommt aber ein bisschen blöd wenn ich das nicht verwenden darf...
bzw. noch nicht gelernt haben...

lg blue flare
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Tipp (in Anlehnung an BlackJack): Die ersten beiden "if" sind quasi obsolet; letztlich testest Du damit ja eben nur, ob der Nutzer eine ungültige Option gewählt hat. Genau dafür gibt es doch ein Konstrukt, welches sich hier einreiht: if...elif...?

Zunächst fragst Du alle Optionen ab, und wenn nichts davon zugetroffen ist, dann ist es wohl eine ungültige Option gewesen.

Noch kurz ein paar Anmerkungen zum Rest:

- ich würde PEP8 mehr beachten. "menueauswahl" also statt "Menueauswahl".
- ich würde auf die Umwandlung der Eingabe in einen Integer-Wert verzichten und die Abfragen gegen Strings vergleichen:

Code: Alles auswählen

if choice == "1":
    pass
Vorteil: Sollte der Nutzer einen Buchstaben oder ein anderes Zeichen eingeben, würde keine Exception ausgelöst, sondern das Programm würde normal in das noch von Dir zu findende Konstrukt reinlaufen und "normal" beenden.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

@Blue Flare: Einen `stop()`-"Befehl" hast Du ja anscheinend auch nicht gelernt, also musst Du so oder so etwas nehmen was Du noch nicht kennst. Also solltest Du kennenlernen was es neben dem ``if`` und ``elif`` halt noch gibt.
Blue Flare
User
Beiträge: 21
Registriert: Dienstag 7. September 2010, 18:34

alles klar, versuche das mal so...

@Black Jack: wir sind in der schule erst bei if & elif & else angekommen, da würde es doch blöd ausschaun wenn ich schon mit pass & try & accept iwas mache...

lg blue flare
BlackJack

@Blue Flare: Mal davon abgesehen, dass das nicht blöd wäre sondern Eigeninitiative zeigen würde, kannst Du das auch mit ``if``, ``elif``, und ``else`` lösen. Wie das geht habe ich im Grunde schon beschrieben. Das was nach dem "stop" steht soll nur ausgeführt werden wenn die ``if``-Bedingung nicht zutrifft.
Antworten