Seite 1 von 1

Unterschied: if, elif, else

Verfasst: Sonntag 16. Oktober 2011, 10:29
von BlackPython
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:

Re: Unterschied: if, elif, else

Verfasst: Sonntag 16. Oktober 2011, 10:41
von Darii
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

Re: Unterschied: if, elif, else

Verfasst: Sonntag 16. Oktober 2011, 11:15
von mutetella
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

Re: Unterschied: if, elif, else

Verfasst: Sonntag 16. Oktober 2011, 11:19
von Darii
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.

Re: Unterschied: if, elif, else

Verfasst: Sonntag 16. Oktober 2011, 11:32
von BlackPython
ok danke
ich glaub jetzt versteh ichs :D

Re: Unterschied: if, elif, else

Verfasst: Sonntag 16. Oktober 2011, 19:04
von mutetella
@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

Re: Unterschied: if, elif, else

Verfasst: Sonntag 16. Oktober 2011, 19:21
von /me
mutetella hat geschrieben:Schon, nur hatte ich den Eindruck, dass BlackPython eine 'gerade' if-/else-Schleife meint.
"Nimm das, Schurke!"

Re: Unterschied: if, elif, else

Verfasst: Sonntag 16. Oktober 2011, 21:05
von mutetella
:oops: ... voll erwischt ... :oops:



ABER: Was sind das nur für Leute, die solche Domains registrieren... :shock:

Re: Unterschied: if, elif, else

Verfasst: Montag 17. Oktober 2011, 07:31
von Darii
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.