Hvordan sjekke om strengen er tom i Python


Beste svaret

Her er en funksjon for å sjekke om en streng er tom:

def is\_empty(string):

return not string.strip()

Tomme sekvenser er falske og evalueres til falske i en boolsk sammenheng. Du kan bruke dette til å sjekke om en streng er tom eller ikke. Fjern først mellomrom slik at hvis strengen bare inneholder mellomrom, blir de fjernet og strengen blir null, og blir evaluert til Falske. Du kan fjerne strip () -metoden hvis du ikke vil at strenger med bare mellomrom skal betraktes som tomme.

Eksempel Bruk:

print(is\_empty("")) # Empty string.

print(is\_empty(" ")) # String with only a space char.

print(is\_empty("Hello!")) # String with actual characters.

Utgang:

True

True

Falsk

Merk: Vær eksplisitt og bruk bool () i funksjonen hvis du også trenger å sende andre ting enn strenger til funksjonen.

Svar

Jeg kommer til å anta at du snakker om lister (Python har arrays , men de er veldig forskjellige fra lister).

Tre måter:

1 Test sannheten

Hvis du vet at varen er en liste du gjør:

if not my\_list:

print(‘List is empty’)

Tomme beholdere (lister, sett, tupler, dikter) evalueres som falske

2 Test mot en em pty-liste

if my\_list == []:

print(‘List is empty’)

3 Test lengden

if len(my\_list) == 0:

print(‘List is empty’)

Av de tre alternativene anses det første å være det reneste

Tillegg:

Hvis du tester listen din før du prøver å bruke den, er den beste måten å gjøre det ikke å bry deg, og bare bruke listen og fange feilene:

try:

customer = customer\_list[customer\_number]

except IndexError:

print(‘List is empty or {customer\_number} doesn’t exist’)

Å fange feilen som dette anses å være bedre enn å eksplisitt teste for tomhet. Det er et av Python-prinsippene kalt EAFP: Enklere å be om tilgivelse enn tillatelse.

Merknader om numpy arrays.

Numpy følger ikke mekanismene ovenfor – for eksempel genererer metode 1 en feil, og metode 3 ovenfor skal være the\_array.size == 0 for eksempel.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *