Jak zkontrolovat, zda je řetězec v Pythonu prázdný


Nejlepší odpověď

Zde je funkce ke kontrole, zda je řetězec prázdný:

def is\_empty(string):

return not string.strip()

Prázdné sekvence jsou falešné a v booleovském kontextu se vyhodnotí jako False. Tímto způsobem můžete zkontrolovat, zda je řetězec prázdný nebo ne. Nejprve odstraňte mezery, takže pokud řetězec obsahuje pouze mezery, budou odstraněny a řetězec bude mít hodnotu null, což bude vyhodnoceno jako False. Metodu strip () můžete odstranit, pokud nechcete, aby řetězce s pouze mezerami byly považovány za prázdné.

Příklad použití:

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

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

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

Výstup:

Pravda

Pravda

False

Poznámka: Buďte explicitní a použijte bool () v funkce, pokud do funkce potřebujete předat i jiné věci než řetězce.

Odpověď

Předpokládám, že mluvíte o seznamech (Python má pole , ale velmi se liší od seznamů).

Tři způsoby:

1 Otestujte pravdivost

Pokud víte, že jde o seznam, který děláte:

if not my\_list:

print(‘List is empty’)

Prázdné kontejnery (seznamy, množiny, n-tice, dikty) se vyhodnotí jako nepravdivé

2 Test proti em seznam produktů

if my\_list == []:

print(‘List is empty’)

3 Otestujte délku

if len(my\_list) == 0:

print(‘List is empty’)

Ze tří možností je první považována za nejčistší

Další:

Pokud svůj seznam testujete, než se ho pokusíte použít, nejlepší způsob, jak to udělat, je neobtěžovat se a jednoduše použít seznam a zachytit chyby:

try:

customer = customer\_list[customer\_number]

except IndexError:

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

Chytání této chyby je považováno za lepší než výslovné testování prázdnoty. Jedná se o jeden z principů Pythonu, který se nazývá EAFP: Snadnější požádat o odpuštění než o povolení.

Poznámky k početným polím.

Numpy výše uvedené mechanismy nutně nedodržuje – například metoda 1 generuje chybu a výše uvedená metoda 3 by měla být například the\_array.size == 0.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *