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
.