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
.