Hur man kontrollerar om strängen är tom i Python


Bästa svaret

Här är en funktion för att kontrollera om en sträng är tom:

def is\_empty(string):

return not string.strip()

Tomma sekvenser är falska och utvärderas till falska i ett booleskt sammanhang. Du kan använda detta för att kontrollera om en sträng är tom eller inte. Ta bort det vita utrymmet först så att om strängen bara innehåller tomt utrymme tas de bort och strängen blir noll och utvärderas till Falsk. Du kan ta bort remsan () om du inte vill att strängar med endast blanksteg ska anses vara tomma.

Exempel Användning:

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

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

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

Output:

True

True

Falskt

Obs: Var tydlig och använd bool () i funktionen om du också behöver skicka andra saker än strängar till funktionen.

Svar

Jag ska anta att du pratar om listor (Python har matriser , men de skiljer sig mycket från listor).

Tre sätt:

1 Testa sanningen

Om du vet att artikeln är en lista gör du:

if not my\_list:

print(‘List is empty’)

Tomma behållare (listor, uppsättningar, tuplar, diktat) utvärderas som falska

2 Testa mot en em pty-lista

if my\_list == []:

print(‘List is empty’)

3 Testa längden

if len(my\_list) == 0:

print(‘List is empty’)

Av de tre alternativen anses det första vara det renaste

Ytterligare:

Om du testar din lista innan du försöker använda den är det bästa sättet att göra det att inte bry sig, och helt enkelt använda listan och fånga felen:

try:

customer = customer\_list[customer\_number]

except IndexError:

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

Att fånga felet på det här sättet anses vara bättre än att uttryckligen testa för tomhet. Det är en av Python-principerna som kallas EAFP: Enklare att be om förlåtelse än tillstånd.

Anteckningar om dumma matriser.

Numpy följer inte nödvändigtvis ovanstående mekanismer – till exempel genererar metod 1 ett fel och metod 3 ovan bör till exempel vara the\_array.size == 0.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *