Unterschied: if, elif, else

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
BlackPython
User
Beiträge: 16
Registriert: Samstag 15. Oktober 2011, 09:22

also if entspricht ja "wenn"
und else entspricht "ansonsten"
aber ich versteh elif nicht ganz :/
was ist der unterschied zwischen if und elif? is das nicht dasselbe? :roll:
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

BlackPython hat geschrieben:also if entspricht ja "wenn"
und else entspricht "ansonsten"
aber ich versteh elif nicht ganz :/
andernsfalls wenn
was ist der unterschied zwischen if und elif? is das nicht dasselbe? :roll:
Wie du jetzt vielleicht schon erraten ist elif eine Kombination aus else und if

Code: Alles auswählen

if bedingung_1: pass
elif bedingung_2: pass
else: pass
enspricht also

Code: Alles auswählen

if bedingung_1: pass
else:
    if bedingung_2: pass
    else: pass
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Und elif hat noch den Vorteil, dass die Abfrageschleife verlassen wird, sobald etwas zutrifft:

Code: Alles auswählen

>>> a = 5
>>> def ifs():
...     if a == 0:              #wird abgefragt
...         print 'a ist null'
...     if a == 5:              #wird abgefragt
...         print 'a ist fuenf'
...     if a == 3:              #wird abgefragt
...         print 'a ist drei'
... 
>>> def elifs():
...     if a == 0:              #wird abgefragt
...         print 'a ist null'
...     elif a == 5:            #wird abgefragt
...         print 'a ist fuenf'
...     elif a == 3:            #wird nicht mehr abgefragt
...         print 'a ist drei'
... 
>>> ifs()
a ist null
>>> elifs()
a ist null
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

mutetella hat geschrieben:Und elif hat noch den Vorteil, dass die Abfrageschleife verlassen wird, sobald etwas zutrifft:
Diesen „Vorteil“ hat man generell bei verschachtelten if-else. elif ist einfach nur eine einfachere Schreibweise dafür.
BlackPython
User
Beiträge: 16
Registriert: Samstag 15. Oktober 2011, 09:22

ok danke
ich glaub jetzt versteh ichs :D
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@Daril:
Schon, nur hatte ich den Eindruck, dass BlackPython eine 'gerade' if-/else-Schleife meint. Und da macht es eben schon einen Unterschied. Mein Beispiel war nicht gut, darum hier nochmal, um zu zeigen, was ich meine:

Code: Alles auswählen

def ifs():
    a = 1
    if a == 0:
        a += 1
    if a == 1:
        a += 1
    if a == 2:
        a += 1
    return a

def elifs():
    a = 1
    if a == 0:
        a += 1
    elif a == 1:
        a += 1
    elif a == 2:
        a += 1
    return a

def elses():
    a = 1
    if a == 0:
        a += 1
    else:
        if a == 1:
            a += 1
        else:
            if a == 2:
                a += 1
    return a

Code: Alles auswählen

>>> ifs()
3
>>> elifs()
1
>>> elses()
1
Ich glaube eben nicht, dass sich die Frage auf 'elifs()' vs. 'elses()', die ja equivalent sind, bezog, sondern eher auf 'ifs()' vs. 'elifs'.
Und da ist es eben ein entscheidender Unterschied im Ablauf der Abfrage(n).

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

mutetella hat geschrieben:Schon, nur hatte ich den Eindruck, dass BlackPython eine 'gerade' if-/else-Schleife meint.
"Nimm das, Schurke!"
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

:oops: ... voll erwischt ... :oops:



ABER: Was sind das nur für Leute, die solche Domains registrieren... :shock:
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

mutetella hat geschrieben:Ich glaube eben nicht, dass sich die Frage auf 'elifs()' vs. 'elses()', die ja equivalent sind, bezog, sondern eher auf 'ifs()' vs. 'elifs'.
Ja da hast du recht, deswegen gab ich ein Beispiel.
Antworten