If- und Elif-Schleife in Python noch einmal ausführen?

6 Antworten

Dazu machst du einfach eine while-Schleife um die if-Anweisung (offiziell hießt das if-Anweisung, nicht if-Schleife). Du kannst entweder eine endlos-Schleife machen, indem du while True schreibst, oder du machst eine Variable die dann einfach auf False gesetzt wird. Das kommt im Prinzip auf das selbe raus...
Und noch was: Du konvertierst in der zweiten und dritten Zeile die Usereingabe direkt in einen Integer. Das funktioniert erst mal auch, aber was wenn der User "Hallo" eingibt? Dann stürzt das Programm ab... Um das vorzubeugen bietet sich eine try-except-Konstruktion an, mit der du vor der Konvertierung prüfen kannst, ob es wirklich eine Zahl ist und sie erst dann konvertieren. In diesem Zusammenhang wäre eine Funktion sinnvoll, aber da ich mir nicht sicher bin ob du sie schon gelernt hast werde ich es mal ohne machen... Alles in Allem sähe das dann etwa so aus:

print("Hallo und herzlich willkommen beim Sternzeichen-Rausfinder!")

while True:
    birthmonth = input("Bitte gib nun deinen Guburtsmonat ein (1-12)")
    try:
        birthmonth_var = int(birthmonth)
        break
    except:
        print("Ungültige Eingabe")
        
while True:
    birthday = input("Bitte gib nun deinen Geburtstag im Monat ein (1-31)")
    try:
        birthday_var = int(birthday)
        break
    except:
        print("Ungültige Eingabe")
        
while True:
    if birthmonth_var < 1 or birthmonth_var > 12 or birthday_var < 1 or birthday_var > 31:
        print("Das ist nicht möglich! Du hast falsche Daten eingegeben.")
    elif birthmonth_var == 1 and birthday_var <= 20:
        print("Dein Sternzeichen ist Steinbock!")
    elif birthmonth_var == 1 and birthday_var >= 21:
        print("Dein Sternzeichen ist Wassermann!")
    #[...]
    again = input("Möchtest du noch ein Sternzeichen herausfinden? "j" für ja und "n" für nein.")
    if again.lower() == 'j':
        pass
    elif again.lower() == 'n':
        break
    else:
        print("Ungültige Eingabe. Das Programm wird beendet.") #hier kannst du natürlich irgendwas machen, und auch selbst entscheiden ob das Programm dann beendet werden soll oder nicht...
        break
Woher ich das weiß:Hobby – Programmiere seit eineinhalb Jahren

Es gibt keine IF oder Elif-Schleife und Du solltest dich dringend mit den Grundlagen der Programmierung befassen.

Ekscel2010 
Fragesteller
 29.03.2021, 06:48

Oh doch, die gibt es.

Das Programm ist mittlerweile komplett fertig, bugfrei und schummelsicher. Nicht danke für deine Hilfe! ;)

0
Kaktus258  29.03.2021, 09:00

Das könntest du ruhig bisschen ausführen, dass es if-Anweisung heißt. Die Aussage ist zwar richtig, der Code aber auch...

0
dertrollz  15.10.2021, 22:58

Du solltest dich besser mit den Grundlagen von Python befassen lamfo

0

Entweder du packst alles in eine While True Schleife und unten machst du.dann If again == "Nein": Break oder abrr du machst es so wie die anderen Kommentare hirr

Du erstellst eine variable -> "running = True" und dann machst du eine While-Schleife > "while running:".

Dadurch wird das Programm so lange wiederholt, bis running = False ist.

Du musst alles einfach in diese While-Schleife machen, und wenn der Benutzer das Programm nicht

nocheinmal ausführen möchte, dann wird running auf "False" gesetzt.

grüße Leo

Bei einer If-Abfrage handelt es sich um die Prüfung ob eine Bedingung erfüllt ist - ELIF / ELSE sind Alternativen zur zuvor geprüften Bedingung.

Schleifen führen einen oder Mehrere Befehle immer wieder aus bis die Bedingung erfüllt oder nicht mehr erfüllt ist oder eine Variable (Zähler) einen bestimmten Wert erreicht hat.

Es gibt While-Schleifen, Do-While-Schleifen und For-Schleifen aber keine IF-Schleifen.

Die IF-Schleife findest Du im Netz nur, weil einige Idioten von anderen Idioten abschreiben.