Sådan kontrolleres, om strengen er tom i Python


Bedste svar

Her er en funktion til at kontrollere, om en streng er tom:

def is\_empty(string):

return not string.strip()

Tomme sekvenser er falske og evalueres til falske i en boolsk sammenhæng. Du kan bruge dette til at kontrollere, om en streng er tom eller ikke. Fjern det hvide mellemrum først, så hvis strengen kun indeholder mellemrum, fjernes de, og strengen vil være nul og evalueres til Falsk. Du kan fjerne strip () -metoden, hvis du ikke ønsker, at strenge med kun mellemrum skal betragtes som tomme.

Eksempel Brug:

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

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

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

Output:

Sandt

Sandt

Falsk

Bemærk: Vær eksplicit og brug bool () i funktionen, hvis du også skal videregive andet end strenge til funktionen.

Svar

Jeg antager, at du taler om lister (Python har arrays , men de er meget forskellige fra lister).

Tre måder:

1 Test sandheden

Hvis du ved, at varen er en liste, skal du gøre:

if not my\_list:

print(‘List is empty’)

Tomme beholdere (lister, sæt, tupler, dikter) evalueres som falske

2 Test mod en em pty-liste

if my\_list == []:

print(‘List is empty’)

3 Test længden

if len(my\_list) == 0:

print(‘List is empty’)

Af de tre muligheder betragtes den første for at være den reneste

Yderligere:

Hvis du tester din liste, før du prøver at bruge den, er den bedste måde at gøre det på ikke at gider og blot bruge listen og fange fejlene:

try:

customer = customer\_list[customer\_number]

except IndexError:

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

At fange fejlen som denne betragtes som bedre end eksplicit at teste for tomhed. Det er et af Python-principperne kaldet EAFP: Lettere at bede om tilgivelse end tilladelse.

Noter om følelsesløse arrays.

Numpy følger ikke ovennævnte mekanismer – f.eks. genererer metode 1 en fejl, og metode 3 ovenfor skal f.eks. være the\_array.size == 0.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *