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?

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?

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

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
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
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.