Abrage, ob string oder liste leer ist

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.
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

Abrage, ob string oder liste leer ist

Beitragvon Francesco » Dienstag 27. Februar 2007, 14:28

Hi, noch eine Frage, mache einen neuen Thread, obwohl das auch mit dem vorigen zusammenhängt, aber da geht es mir mehr darum, ob es einen Python code beautifier gibt.

Ich habe in meinem Source geändert:
Vergleich ob string oder Liste leer ist:

vorher:

Code: Alles auswählen

if len (<string>oder<liste>) == 0: #auf leer
if if len (<string>oder<liste>) > 0:

auf

Code: Alles auswählen

if string:
#oder
if liste:


Nun bin ich mir nicht mehr sicher.
Es sieht ein bisschen komisch aus.
Und auch nicht so besonders gut zu lesen.

Andererseits sieht das auch blöd aus:

Code: Alles auswählen

if string == "":
if liste == []:


Aber da kennt man sich warscheinlich besser aus.

Wie ist eure Meinung?
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Beitragvon HWK » Dienstag 27. Februar 2007, 16:02

Ich verwende

Code: Alles auswählen

if string:
bzw.

Code: Alles auswählen

if liste:
Das ist so schön kurz.
MfG
HWK
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: Abrage, ob string oder liste leer ist

Beitragvon Leonidas » Dienstag 27. Februar 2007, 17:15

Francesco hat geschrieben:Aber da kennt man sich warscheinlich besser aus.

Wie ist eure Meinung?

Ich bevorzuge auch den kürzeren Weg, also direkt mit ``if object: do_sth()``. Das ist sogar noch Duck-Typing-kompatibel, was das explizite Testen auf Gleichheit nicht ist.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

Beitragvon Dill » Dienstag 27. Februar 2007, 17:27

Der Code nach einem if wird ausgeführt, falls der folgende ausdruck wahr ist (True).

die ausdrücke "" und [] usw werden in python zu False, daher wird

Code: Alles auswählen

if a_string:
  pass


zu

Code: Alles auswählen

if True:
  #a_stringist nicht leer


oder

Code: Alles auswählen

if False:
  #a_string ist leer


gefällt dir die schreibweise jetzt besser?
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Beitragvon CM » Dienstag 27. Februar 2007, 18:14

@Dill: Das war gar nicht gefragt.
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

Beitragvon Dill » Dienstag 27. Februar 2007, 18:45

@Cm danke für den interessanten beitrag

Es sieht ein bisschen komisch aus.
Und auch nicht so besonders gut zu lesen.
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Beitragvon CM » Dienstag 27. Februar 2007, 19:13

Siehe den anderen Thread von Franz. Wenn ich ihn richtig verstanden habe, so geht es um die Frage, ob eines von

Code: Alles auswählen

if len(string) == 0: pass
if string == "": pass
if not string: pass

"besser" ist (wenn auch die Eingangsfrage hier etwas unglücklich formuliert ist). Deine Antwort habe ich aber so verstanden, daß Du sagen wolltest wie evaluiert wird, was aber gar nicht die Frage war. Wenn ich etwas falsch verstanden haben sollte, so tut mir das leid. Wenn Du Dich auf die Füße getreten fühlst, so möchte ich mich hiermit entschuldigen.

Gruß,
Christian

PS Woher kommt das Zitat? Habe ich auch in der Vergangheit zu grob formuliert? Bitte PN an mich.
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

Beitragvon Dill » Dienstag 27. Februar 2007, 20:16

ich verzeihe dir :D

das zitat ist von Francesco, und ich dachte mir, wenn die schreibweise für ihn komsich aussieht, hilft es ihm zu verstehen was da passiert ...
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Beitragvon nkoehring » Dienstag 27. Februar 2007, 21:19

nun seit wieder lieb miteinander ..ist ja niemandem was passiert, wa?

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]