Python break Problem?

5 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Break ist für Schleifen. Nicht für IFs. Natürlich kannst du es dort also nicht nutzen.

Woher ich das weiß:Studium / Ausbildung – Informatikstudium

MuedesRaven 
Beitragsersteller
 31.01.2020, 11:46

Hättest du vielleicht ein Beispiel wie ich es in einer Schleife lösen könnte?

0
triopasi  31.01.2020, 11:49
@MuedesRaven

Brauchst du denn eine Schleife? Ansonsten musst du dir aussuchen welche Schleife du willst. Und das kommt drauf an was genau du haben willst.

1
MuedesRaven 
Beitragsersteller
 31.01.2020, 11:51
@triopasi

Wenn n größer ist als n soll er eine kurze nachricht zurückschicken und dann aufhören mit dem Script. Wenn n kleiner ist soll er ganz normal weitermachen

0
triopasi  31.01.2020, 11:55
@MuedesRaven

Da brauchst du aber keine Schleife. Du könntest aber einfach exit() aufrufen.

1
MuedesRaven 
Beitragsersteller
 31.01.2020, 11:58
@triopasi

Hab jetzt:

if n > m:

    print("Leider hatten Sie kein Glück!")

    pause(2)

    exit()

else:

    print("Es wird fortgefahren!")

    pause(1)

0
MuedesRaven 
Beitragsersteller
 31.01.2020, 12:08
@triopasi

Danke für deine Hilfe und sorry dass ich deine Zeit in Anspruch nehmen musste!

MfG Raven

1

An der stelle könntest du sys.exit(0) anstelle von break verwenden. Dann wird das Programm beendet und 0 zurückgegeben.

Woher ich das weiß:Studium / Ausbildung – Student der Informatik an der HU Berlin

Das hat keine Funktion an der Stelle und kann deswegen auch nicht benutzt werden. Nach der Ausgabe von „Leider hatten Sie kein Glück“ ist ohnehin Schluss mit dem if-else Block.

Ganz einfach und ohne if else Versenkungen

n = randint(x,y)

m = randint(n+1,y)

einziges Problem beide können 40 sein. Du könntest also n auf 0-39 setzten um das zu verhindern.

Woher ich das weiß:Studium / Ausbildung – Informatikstudent

MuedesRaven 
Beitragsersteller
 31.01.2020, 11:50

Ich hab es extra so geschrieben dass auch "40" oder gleiche Antworten richtig sein können.

1
MuedesRaven 
Beitragsersteller
 31.01.2020, 12:00
@whgoffline

Es wäre eine Möglichkeit es zu lösen, aber mit dem exit() befehl geht es besser.

Dann kann ich es so lassen wie bisher.

if n > m:

    print("Leider hatten Sie kein Glück!")

    pause(2)

    exit()

else:

    print("Es wird fortgefahren!")

    pause(1)

Trotzdem Danke für den Vorschlag.

0

setz das ganze doch einfach in einen try-except block und werf eine selbst definierte Exception, wenn n > m

edit: alternativ setz doch einfach alles darunter in den Else-Block


xxxcyberxxx  31.01.2020, 11:50

zudem hat der nicht eingerückte else-Block keine Funktion, da es keinen entsprecheden if-block gibt

1