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

Ciągi znaków Pythona pozostają niezmienne, co oznacza, że ​​możemy je zmieniać w zależności od wykonywanych przez nas operacji. Najważniejszą funkcjonalnością Pythona jest manipulacja ciągami. Do zmiany ciągu można zastosować wiele metod, w tym metody dzielenia łańcucha na kawałki, pętle po jego elementach i metody łańcuchowe. Ważne jest, aby zrozumieć, że ciąg znaków ze spacjami jest w rzeczywistości pustym ciągiem o długości niezerowej. Ten problem zostanie omówiony w tym samouczku, a także możliwe rozwiązanie. W rezultacie, gdy używamy tylko() Lub ' nie ', aby sprawdzić, czy ciąg znaków jest pusty, w rzeczywistości spacja jest zliczana jako znak ciągu, dlatego ciąg ze spacją nie będzie liczony jako ciąg pusty.

W Pythonie możemy użyć jednego z podstawowych sposobów opisanych poniżej, aby sprawdzić pusty ciąg.

  1. Używanie operatora not
  2. Korzystanie z funkcji len().
  3. Używanie not + string.isspace()
  4. Używanie len() + string.strip()
  5. Używanie i + string.strip()
  6. Używanie __eq__

Używanie nie operatora

The nie operator wykonuje tę samą pracę co operator tylko() funkcjonować. W Pythonie pusty ciąg znaków jest rzeczywiście równy False. The nie operatora można użyć do określenia, czy ciąg znaków jest rzeczywiście pusty, czy nie. The nie operacja w Pythonie zapobiega interpretacji ciągu znaków jako pustego ciągu, jeśli zawiera spacje.

Przykład

W tym przykładzie użyliśmy dwóch typów stringów, string1 i string2. Ciąg2 ma białe znaki, a ciąg1 jest pustym ciągiem. Następnie użyliśmy warunku „if else”, aby sprawdzić, czy dany ciąg znaków jest pusty, jeśli nie występuje w ciągu. Nie jest jednak pusty. Białe znaki nie są traktowane przez operator not jako puste ciągi znaków, dlatego wynik nie będzie pustym ciągiem w przypadku drugiego ciągu wejściowego. Na koniec wynik został wydrukowany.

Kod:

 #taking an empty string and a string with spaces only string1 = '' string2 = ' ' if not string1: print(f'string, string1 = '{string1}', with no spaces is empty') else: print(f'string, string1 = '{string1}', with no spaces is not empty') if not string2: print(f'string, string2 = '{string2}', with spaces is empty') else: print(f'string, string2 = '{string2}', with spaces is not empty')  

Wyjście:

 string, string1 = '', with no spaces is empty string, string2 = ' ', with spaces is not empty  

Korzystanie z metody len().

Użyjemy Pythona tylko() funkcja określająca długość łańcucha. Następnie, jeśli długość łańcucha jest równa 0, ciąg jest pusty; w przeciwnym razie tak nie jest. Podczas korzystania z tylko() technika w Pythonie, ciąg nie jest tak naprawdę uważany za pusty ciąg, jeśli zawiera spacje.

Przykład

W tym przykładzie użyliśmy dwóch typów stringów, string1 i string2. Ciąg2 ma białe znaki, a ciąg1 jest pustym ciągiem. Następnie obliczono długość każdego łańcucha za pomocą funkcji len() Pythona. Następnie użyliśmy pętli „if-else”, aby sprawdzić, czy długość łańcucha jest równa zero, w którym to przypadku warunek wypisuje, że ciąg jest pusty i w takim przypadku drukowany ciąg nie jest pusty. Białe znaki w ciągu znaków nie są uznawane za puste tylko() , co spowoduje niepusty ciąg. Na koniec wydrukowaliśmy wynik obu ciągów.

Kod:

 #taking an empty string and a string with spaces only string1 = '' string2 = ' ' length1 = len(string1) length2 = len(string2) if length1 == 0: print(f'string, string1 = '{string1}', with no spaces is empty') else: print(f'string, string1 = '{string1}', with no spaces is not empty') if length2 == 0: print(f'string, string2 = '{string2}', with spaces is empty') else: print(f'string, string2 = '{string2}', with spaces is not empty')  

Wyjście:

 string, string1 = '', with no spaces is empty string, string2 = ' ', with spaces is not empty  

Używanie operatora not + str.isspace()

Sprawdza, czy na pasku nie ma białych znaków, w taki sam sposób, jak metoda rozebrać się() funkcja tak. Jednakże, rozebrać się() funkcja zajmuje dużo czasu, w przeciwieństwie do ul. isspace() ponieważ strip() musi wykonać operację usuwania, co wymaga dużo pracy obliczeniowej.

Przykład

W tym przykładzie użyliśmy dwóch typów stringów, string1 i string2. Ciąg2 ma białe znaki, a ciąg1 jest pustym ciągiem. Zastosowano warunek „jeśli-inaczej”. Korzystaliśmy z isspace() metodę w warunku if else, który sprawdza, czy występują wszystkie spacje w ciągach znaków. Na koniec wydrukowano dane wyjściowe i widać, że oba ciągi znaków są puste.

Kod:

 #taking an empty string and a string with spaces only string1 = '' string2 = ' ' if string1 and not string1.isspace(): print(f'string, string1 = '{string1}', with no spaces is empty') else: print(f'string, string1 = '{string1}', with no spaces is not empty') if string2 and not string2.isspace(): print(f'string, string2 = '{string2}', with spaces is empty') else: print(f'string, string2 = '{string2}', with spaces is not empty')  

Wyjście:

 string, string1 = '', with no spaces is not empty string, string2 = ' ', with spaces is not empty  

Używanie len() + string.strip()

W Pythonie użyj len() + string.strip() technika sprawdzania, czy ciąg znaków jest całkowicie pusty. Białe znaki w ciągu znaków są usuwane za pomocą metody string.strip() metoda. Jeśli w ciągu znaków jest spacja, funkcja rozebrać się() metoda usuwa go i tylko() funkcja sprawdza, czy ciąg znaków jest pusty, czy nie.

Przykład

Niezależnie od tego, ile spacji umieścimy w ciągu, usuwa je wszystkie i sprawdza długość łańcucha; jeśli zwróci 0, ciąg jest pusty; inaczej, tak nie jest.

Kod:

 #taking an empty string and a string with spaces only string1 = '' string2 = ' ' if len(string1.strip()): print(f'string, string1 = '{string1}', with no spaces is not empty') else: print(f'string, string1 = '{string1}', with no spaces is empty') if len(string2.strip()): print(f'string, string2 = '{string2}', with spaces is not empty') else: print(f'string, string2 = '{string2}', with spaces is empty')  

Wyjście:

 string, string1 = '', with no spaces is empty string, string2 = ' ', with spaces is empty  

Użycie operatora „i” + funkcji strip().

Zauważyliśmy, że białe znaki w łańcuchach nie zawsze są interpretowane jako puste ciągi. Kiedy więc używamy rozebrać się() funkcję sprawdzającą, czy ciąg znaków jest pusty, rzeczywiście możemy również sprawdzić, czy nie ma białych znaków.

Przykład

W tym przykładzie użyliśmy dwóch ciągów wejściowych, ciąg1 i ciąg2. Ciąg2 ma białe znaki, a ciąg1 jest pustym ciągiem. Następnie użyliśmy warunku if-else i the rozebrać się() funkcja sprawdzająca, czy ciąg znaków jest pusty, czy nie. Jeśli warunek ma wartość Fałsz, ciąg znaków jest pusty, a w przeciwnym razie wykonywane są bloki. W tej metodzie białe znaki są również uważane za pusty ciąg znaków. Na koniec wynik został wydrukowany.

Kod:

 #input empty with and without spaces string s = '' str = ' ' if string1 and string1.strip(): print(f'string, string1 = '{string1}', with no spaces is not empty') else: print(f'string, string1 = '{string1}', with no spaces is empty') if string2 and string2.strip(): print(f'string, string2 = '{string2}', with spaces is not empty') else: print(f'string, string2 = '{string2}', with spaces is empty')  

Wyjście:

 string, string1 = '', with no spaces is empty string, string2 = ' ', with spaces is empty  

Korzystanie z funkcji Strip().

Zauważyliśmy, że białe znaki w łańcuchach nie zawsze są interpretowane jako puste ciągi. Kiedy więc używamy rozebrać się() funkcję sprawdzającą, czy ciąg znaków jest pusty, rzeczywiście możemy również sprawdzić, czy nie ma białych znaków.

Przykład

W tym przykładzie użyliśmy dwóch ciągów wejściowych, ciąg1 i ciąg2. Ciąg1 ma białe znaki, a ciąg2 jest pustym ciągiem. Użyliśmy warunku if else, aby usunąć ciągi znaków, usunąć białe znaki, a następnie zwrócić pusty ciąg, jeśli ciąg stanie się pusty. W przeciwnym razie ciąg nie jest pusty. Na koniec wynik został wydrukowany.

Kod:

 #input empty with and without spaces string s = '' str = ' ' if string1.strip(): print(f'string, string1 = '{string1}', with no spaces is not empty') else: print(f'string, string1 = '{string1}', with no spaces is empty') if string2.strip(): print(f'string, string2 = '{string2}', with spaces is not empty') else: print(f'string, string2 = '{string2}', with spaces is empty')  

Wyjście:

 string, string1 = '', with no spaces is empty string, string2 = ' ', with spaces is empty  

Korzystanie z metody __eq__

Dunder identyfikuje metody za pomocą dwóch podkreśleń przed i po ich nazwach. The __równik__ metody można również użyć do sprawdzenia, czy ciąg znaków jest pusty. Dzwoniąc do __równik__ technika w Pythonie, ciąg nie jest uważany za pusty, jeśli zawiera spacje.

Przykład

W tym przykładzie użyliśmy dwóch ciągów wejściowych, ciąg1 i ciąg2. Ciąg2 ma białe znaki, a ciąg1 jest pustym ciągiem. The __równik__ funkcja została użyta. W warunku if-else użyliśmy podanej metody, aby sprawdzić, czy ciąg znaków jest pusty, czy nie. Na koniec wynik został wydrukowany. W tym podejściu białe znaki nie są traktowane jako puste ciągi znaków.

Kod:

 #taking an empty string and a string with spaces only string1 = '' string2 = ' ' if ''.__eq__(string1): print(f'string, string1 = '{string1}', with no spaces is empty') else: print(f'string, string1 = '{string1}', with no spaces is not empty') if ''.__eq__(string2): print(f'string, string1 = '{string2}', with no spaces is empty') else: print(f'string, string1 = '{string2}', with no spaces is not empty')  

Wyjście:

 string, string1 = '', with no spaces is empty string, string1 = ' ', with no spaces is not empty