Jak sprawdzić, czy ciąg jest pusty w Pythonie


Najlepsza odpowiedź

Oto funkcja sprawdzająca, czy ciąg jest pusty:

def is\_empty(string):

return not string.strip()

Puste sekwencje są fałszywe i są oceniane jako fałszywe w kontekście logicznym. Możesz użyć tego, aby sprawdzić, czy ciąg jest pusty, czy nie. Najpierw usuń białe spacje, aby jeśli ciąg zawiera tylko białe znaki, zostaną one usunięte, a ciąg będzie miał wartość NULL, oceniając na False. Możesz usunąć metodę strip (), jeśli nie chcesz, aby ciągi zawierające tylko białe znaki były uważane za puste.

Przykład użycia:

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

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

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

Wynik:

Prawda

Prawda

Fałsz

Uwaga: Pisz wyraźnie i używaj bool () w funkcję, jeśli musisz również przekazać do funkcji coś innego niż łańcuchy.

Odpowiedź

Zakładam, że mówisz o listach (Python ma tablice , ale bardzo różnią się od list).

Trzy sposoby:

1 Sprawdź prawdziwość

Jeśli wiesz, że pozycja jest listą, wykonaj następujące czynności:

if not my\_list:

print(‘List is empty’)

Puste kontenery (listy, zbiory, krotki, dykty) są oceniane jako fałszywe

2 Test na em lista pty

if my\_list == []:

print(‘List is empty’)

3 Sprawdź długość

if len(my\_list) == 0:

print(‘List is empty’)

Z trzech opcji pierwsza jest uważana za najczystszą

Dodatkowe:

Jeśli testujesz swoją listę, zanim spróbujesz jej użyć, najlepszym sposobem na to jest nie zawracać sobie głowy i po prostu skorzystać z listy i wyłapać błędy:

try:

customer = customer\_list[customer\_number]

except IndexError:

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

Uchwycenie takiego błędu jest uważane za lepsze niż jawne testowanie pustki. Jest to jedna z zasad Pythona zwana EAFP: łatwiej poprosić o wybaczenie niż o pozwolenie.

Uwagi o tablicach numpy.

Numpy niekoniecznie stosuje powyższe mechanizmy – na przykład metoda 1 generuje błąd, a metoda 3 powyżej powinna na przykład być the\_array.size == 0.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *