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.