logo

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

Řetězce Pythonu zůstávají neměnné, což znamená, že je můžeme měnit na základě operací, které provádíme. Nejvýznamnější funkcí Pythonu je manipulace s řetězci. Ke změně řetězce lze použít mnoho metod, včetně přístupů krájení řetězce, procházení jeho prvků a metod řetězců. Je důležité pochopit, že řetězec s mezerami je ve skutečnosti prázdný řetězec nenulové délky. Tento problém bude diskutován v tomto tutoriálu, stejně jako možná náprava. V důsledku toho, když použijeme jen() nebo ' ne ' pro kontrolu prázdného řetězce, ve skutečnosti počítá mezeru jako nic menšího než znak řetězce, proto se řetězec s mezerou nebude počítat jako prázdný řetězec.

V Pythonu můžeme pro kontrolu prázdného řetězce použít jeden ze základních způsobů popsaných níže.

  1. Použití není operátor
  2. Použití funkce len().
  3. Použití not + string.isspace()
  4. Použití len() + string.strip()
  5. Pomocí a + string.strip()
  6. Použití __eq__

Bez operátora

The ne operátor provádí stejnou práci jako jen() funkce. V Pythonu se prázdný řetězec skutečně rovná False. The ne Operátor lze použít k určení, zda je řetězec skutečně prázdný nebo ne. The ne operace v Pythonu zabraňuje interpretaci řetězce jako prázdného řetězce, pokud obsahuje mezery.

řetězec int

Příklad

V tomto příkladu jsme použili dva typy řetězců, řetězec1 a řetězec2. Řetězec2 má mezery a řetězec1 je prázdný řetězec. Pak jsme použili podmínku 'if else' ke kontrole, zda je daný řetězec prázdný, pokud není v řetězci. Není však prázdný. Operátor not nepovažuje mezery za prázdné řetězce, takže v případě druhého vstupního řetězce nebude výstupem prázdný řetězec. Nakonec byl výsledek vytištěn.

Kód:

 #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') 

Výstup:

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

Použití metody len()

Použijeme pythony jen() funkce k určení délky řetězce. Pak, pokud je délka řetězce rovna 0, je řetězec prázdný; jinak tomu tak není. Při použití jen() V Pythonu není řetězec ve skutečnosti považován za prázdný, pokud obsahuje mezery.

Příklad

V tomto příkladu jsme použili dva typy řetězců, řetězec1 a řetězec2. Řetězec2 má mezery a řetězec1 je prázdný řetězec. Délka každého řetězce byla poté vypočtena pomocí funkce len() Pythonu. Poté jsme pomocí smyčky 'if-else' zkontrolovali, zda je délka řetězce rovna nule, v takovém případě podmínka vypíše, že řetězec je prázdný, a v takovém případě tiskový řetězec prázdný není. Mezery v řetězci nejsou považovány za prázdné podle jen() , což vede k neprázdnému řetězci. Nakonec jsme vytiskli výsledek obou řetězců.

Kód:

 #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') 

Výstup:

pole.z javy
 string, string1 = '', with no spaces is empty string, string2 = ' ', with spaces is not empty 

Použití not Operator + str.isspace()

Zkontroluje tam mezery v pruhu stejným způsobem jako pás() funkce ano. Nicméně, pás() funkce trvá na rozdíl od toho dlouho str. isspace() protože strip() musí provést operaci strip, což vyžaduje hodně výpočetní práce.

Příklad

V tomto příkladu jsme použili dva typy řetězců, řetězec1 a řetězec2. Řetězec2 má mezery a řetězec1 je prázdný řetězec. Byla použita podmínka 'if-else'. Použili jsme isspace() metoda v podmínce if else, která kontroluje všechny mezery v řetězcích. Nakonec byl výstup vytištěn a můžete vidět, že oba řetězce jsou prázdné.

Kód:

 #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') 

Výstup:

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

Použití len() + string.strip()

V Pythonu použijte len() + string.strip() technika pro ověření zcela prázdného řetězce. Bílé znaky v řetězci se odstraní pomocí string.strip() metoda. Pokud je v řetězci mezera, pás() metoda jej odstraní a jen() funkce kontroluje, zda je řetězec prázdný nebo ne.

Příklad

výlet ale

Bez ohledu na to, kolik mezer do řetězce vložíme, všechny je odstraní a ověří délku řetězce; pokud vrátí 0, je řetězec prázdný; jinak není.

Kód:

 #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') 

Výstup:

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

Použití operátoru 'and' + funkce strip().

Všimli jsme si, že mezery v řetězcích nejsou vždy interpretovány jako prázdné řetězce. Takže, když použijeme pás() funkce pro ověření, zda je řetězec prázdný, můžeme skutečně zkontrolovat i mezery.

Příklad

V tomto příkladu jsme použili dva vstupní řetězce, řetězec1 a řetězec2. Řetězec2 má mezery a řetězec1 je prázdný řetězec. Potom jsme použili podmínku if-else a pás() funkce, abyste zjistili, zda byl řetězec prázdný nebo ne. Je-li podmínka False, je řetězec prázdný a bloky se provádějí jinak. Mezera je v této metodě také považována za prázdný řetězec. Nakonec byl výsledek vytištěn.

Kód:

 #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') 

Výstup:

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

Použití funkce Strip().

Všimli jsme si, že mezery v řetězcích nejsou vždy interpretovány jako prázdné řetězce. Takže, když použijeme pás() funkce pro ověření, zda je řetězec prázdný, můžeme skutečně zkontrolovat i mezery.

Příklad

V tomto příkladu jsme použili dva vstupní řetězce, řetězec1 a řetězec2. Řetězec1 má mezery a řetězec2 je prázdný řetězec. Použili jsme podmínku if else k odstranění řetězců, odstranění prázdných znaků a poté vrácení prázdného řetězce, pokud se řetězec vyprázdní. Jinak řetězec není prázdný. Nakonec byl výsledek vytištěn.

Kód:

 #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') 

Výstup:

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

Použití metody __eq__

Dunder identifikuje metody se dvěma podtržítky před a za jejich názvem. The __eq__ metodu lze také použít ke kontrole prázdného řetězce. Při volání na __eq__ V Pythonu není řetězec považován za prázdný, pokud obsahuje mezery.

Příklad

příklady ukázkového kódu javascriptu

V tomto příkladu jsme použili dva vstupní řetězce, řetězec1 a řetězec2. Řetězec2 má mezery a řetězec1 je prázdný řetězec. The __eq__ funkce byla použita. V podmínce if-else jsme použili danou metodu k ověření, zda je řetězec prázdný nebo ne. Nakonec byl výsledek vytištěn. V tomto přístupu nejsou bílé znaky považovány za prázdné řetězce.

Kód:

 #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') 

Výstup:

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