if, elif...

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.
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

XtraNine hat geschrieben:Gut, dann sind wir wohl fertig mit der Englisch Stunde (?) ;)
Dann können wir ja mit der Deutschstunde weitermachen. Heute: Deppenleerzeichen.

SCNR
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

birkenfeld hat geschrieben:
XtraNine hat geschrieben:Gut, dann sind wir wohl fertig mit der Englisch Stunde (?) ;)
Dann können wir ja mit der Deutschstunde weitermachen. Heute: Deppenleerzeichen.

SCNR
Ist schon recht ^^
sape
User
Beiträge: 1157
Registriert: Sonntag 3. September 2006, 12:52

birkenfeld hat geschrieben:
XtraNine hat geschrieben:Gut, dann sind wir wohl fertig mit der Englisch Stunde (?) ;)
Dann können wir ja mit der Deutschstunde weitermachen. Heute: Deppenleerzeichen.

SCNR
oder mit >> http://de.wikipedia.org/wiki/Plenk#Sond ... C3.B6sisch << Stunde ;)
birkenfeld hat geschrieben:
XtraNine hat geschrieben: [...]
SCNR
Dito! ;)³
DanielTheNew
User
Beiträge: 13
Registriert: Donnerstag 26. Oktober 2006, 14:37

bin gerade mit der boardsuche auf diesen Thread gekommen und hab auch ne frage zu if

Code: Alles auswählen

test = 'blub'
if test != 'blub':
	print 'ist nicht blub'
else:
	print 'ist blub'
wieso erhalte ich hier die ausgabe "ist blub" ?????

ausgesprochen ist es doch " ist test nicht blub dann schreibe ist nicht blub.

also müsste die ausgabe doch "ist nicht blub" sein.

wo liegt mein gedankenfehler?

mfg[/code]
Benutzeravatar
DatenMetzgerX
User
Beiträge: 398
Registriert: Freitag 28. April 2006, 06:28
Wohnort: Zürich Seebach (CH)

hä?

Bei der ersten Prüfung wird überprüft ob "blub" nicht gleich "blub" ist... Aber da "blub" nach wie vor "blub" ist, wird "ist blub" ausgegeben
Benutzeravatar
Whitie
User
Beiträge: 216
Registriert: Sonntag 4. Juni 2006, 12:39
Wohnort: Schulzendorf

Hi,
Dein Code arbeitet doch wie erwartet.
Warum erwartest Du etwas Anderes ?

Gruß, Whitie
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

DanielTheNew hat geschrieben:ausgesprochen ist es doch " ist test nicht blub dann schreibe ist nicht blub.
Es ist mir zu kompliziert, diesen Satz ohne Interpunktion und Großbuchstaben und Apostrophe zu verstehen. Ich formulier es daher nochmal auf Deutsch (und zwar vereinfacht):

Ist 'test' nicht "blub", dann zeige "ist nicht blub" an. Andernfalls zeige "ist blub" an.

Da aber 'test' gleich blub ist, wird doch das richtige angezeigt.

Aber so nebenbei, die Abfrage würde man andersrum schreiben, sonst wird es unnötig kompliziert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
DanielTheNew
User
Beiträge: 13
Registriert: Donnerstag 26. Oktober 2006, 14:37

Leonidas hat geschrieben:
DanielTheNew hat geschrieben:ausgesprochen ist es doch " ist test nicht blub dann schreibe ist nicht blub.
Es ist mir zu kompliziert, diesen Satz ohne Interpunktion und Großbuchstaben und Apostrophe zu verstehen. Ich formulier es daher nochmal auf Deutsch (und zwar vereinfacht):

Ist 'test' nicht "blub", dann zeige "ist nicht blub" an. Andernfalls zeige "ist blub" an.

Da aber 'test' gleich blub ist, wird doch das richtige angezeigt.

Aber so nebenbei, die Abfrage würde man andersrum schreiben, sonst wird es unnötig kompliziert.

Ihr habt natürlich recht.
Es wahr gestern wohl doch etwas zu spät.

Trotzdem danke für eure Hilfe.
Schirrmeister
User
Beiträge: 3
Registriert: Sonntag 12. November 2006, 14:48
Wohnort: Berlin

Ich hoffe, ich wiederhole jetzt hier niemanden, aber die Bananendiskusion
hab ich mir jetzt nicht komplett durchgelesen...
rolgal_reloaded hat geschrieben:

Code: Alles auswählen

...
if antwort == 1:
    ergebnis = betrag * umrechnungsfaktor
    print "Der Schillingbetrag lautet: ", ergebnis
elif antwort == 2:
    ergebnis = betrag / umrechnungsfaktor
    print "Der Eurobetrag lautet: ", ergebnis
else:
    print antwort, "ist eine ungültige Eingabe!"
Statt dem elif wäre auch if möglich.
Was ist besser, oder ist es in dem Fall reine Geschmackssache?
...
Nein, das ist in keinster Weise egal, und zwar aus folgenden Gründen:
  • Ein elif wird nur ausgewertet, wenn das zugehörige if nicht zutraf, d.h. wenn Du nochmal if schreibst, wird dieses ggf. unnötigerweise ebenfalls ausgewertet. Bei einer Bedingung mit Nebeneffekten (z.B. Funktionsaufrufe) kann das ungewollte Effekte hervorrufen.
  • Wenn das erste if zutrifft, wird das zweite if (also statt elif) entsprechend nicht zutreffen, und stattdessen das else ausgeführt, was wohl auch nicht in deinem Sinne wäre.
Wirklich egal (bzw. Geschmackssache ist es nur dann, wenn bei der ersten zutreffenden Bedingung der aktuelle lexikalische Bereich verlassen wird, z.B. duch ein return.
Intelligenz ist etwas, von dem die meisten Menschen verschont blieben.
Antworten