Hvordan sjekke om strengen er tom?

Har Python noe som en tom strengvariabel der du kan gjøre:

if myString == string.empty:

Uansett, hva er den mest elegante måten å se etter tomme strengverdier på? Jeg finner hardkoding " " hver gang for å sjekke en tom streng ikke så bra.

Løsning

Tomme strenger er "falsy", noe som betyr at de anses som falske i en boolsk sammenheng, så du kan bare gjøre dette:

if not myString:

Dette er den foretrukne måten hvis du vet at variabelen din er en streng. Hvis variabelen din også kan være av en annen type, bør du bruke minStreng == "". Se dokumentasjonen om Truth Value Testing for andre verdier som er falske i boolske sammenhenger.

Kommentarer (13)

Fra PEP 8, i avsnittet "Programmeringsanbefalinger":

For sekvenser, (strenger, lister, tupler), bruk det faktum at tomme sekvenser er falske.

Så du bør bruke:

if not some_string:

eller:

if some_string:

For å klargjøre at sekvenser evalueres til False eller True i en boolsk sammenheng om de er tomme eller ikke. De er ikke lik Sann eller Sann.

Kommentarer (2)

Den mest elegante måten ville trolig være å ganske enkelt sjekke om det er sant eller falskt, f.eks:

if not my_string:

Det kan imidlertid være lurt å fjerne hvite mellomrom fordi:

 >>> bool("")
 False
 >>> bool("   ")
 True
 >>> bool("   ".strip())
 False

Du bør imidlertid være litt mer eksplisitt i dette, med mindre du vet med sikkerhet at denne strengen har bestått en form for validering og er en streng som kan testes på denne måten.

Kommentarer (0)