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.
- Używanie operatora not
- Korzystanie z funkcji len().
- Używanie not + string.isspace()
- Używanie len() + string.strip()
- Używanie i + string.strip()
- 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