logo

Hogyan ellenőrizhető, hogy egy karakterlánc üres-e a Pythonban

A Python karakterláncok változhatatlanok maradnak, ami azt jelenti, hogy megváltoztathatjuk őket az általunk végrehajtott műveletek alapján. A Python legjelentősebb funkciója a karakterlánc-manipuláció. Számos módszer használható a karakterlánc megváltoztatására, beleértve a karakterlánc-szeletelési megközelítéseket, az elemeinek hurkolását és a karakterlánc-módszereket. Létfontosságú megérteni, hogy a szóközöket tartalmazó karakterlánc valójában egy nullától eltérő hosszúságú üres karakterlánc. Ebben az oktatóanyagban ezt a problémát, valamint a lehetséges orvoslást tárgyaljuk. Ennek eredményeként, amikor használjuk a csak() vagy ' nem ' operátort az üres karakterlánc ellenőrzéséhez, valójában a szóközt nem kevesebbnek számítja, mint a karakterlánc karakterét, ezért a szóközt tartalmazó karakterlánc nem számít üres karakterláncnak.

A Pythonban az alábbiakban leírt alapvető módszerek egyikével ellenőrizhetjük, hogy nincs-e üres karakterlánc.

  1. Nem operátor használata
  2. Len() függvény használata
  3. A not + string.isspace() használata
  4. A len() + string.strip() használata
  5. A és + string.strip() használata
  6. __eq__ használata

Nem kezelő használata

A nem operátor ugyanazt a munkát végzi, mint a csak() funkció. A Pythonban az üres karakterlánc valóban egyenlő a False értékkel. A nem operátor használható annak meghatározására, hogy egy karakterlánc valóban üres-e vagy sem. A nem művelet Pythonban megakadályozza, hogy a karakterlánc üres karakterláncként legyen értelmezve, ha szóközt tartalmaz.

Példa

Ebben a példában két típusú karakterláncot használtunk, a string1-et és a string2-t. A karakterlánc2 szóközöket tartalmaz, a string1 pedig egy üres karakterlánc. Ezután egy 'if else' feltétellel ellenőriztük, hogy az adott karakterlánc üres-e, ha nem szerepel a karakterláncban. Ez azonban nem üres. A szóközöket a not operátor nem kezeli üres karakterláncként, ezért a kimenet nem lesz üres karakterlánc a második bemeneti karakterlánc esetén. Végül az eredményt kinyomtatták.

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

Kimenet:

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

A len() módszer használata

Pythonokat fogunk használni csak() függvény a karakterlánc hosszának meghatározásához. Ezután, ha a karakterlánc hossza 0, akkor a karakterlánc üres; egyébként nem az. Amikor a csak() Python technikájában a karakterlánc nem igazán tekinthető üres karakterláncnak, ha szóközöket tartalmaz.

Példa

Ebben a példában két típusú karakterláncot használtunk, a string1-et és a string2-t. A karakterlánc2 szóközöket tartalmaz, a string1 pedig egy üres karakterlánc. Ezután az egyes karakterláncok hosszát a Python len() függvényével számítottuk ki. Ezután az „if-else” ciklussal ellenőriztük, hogy a karakterlánc hossza egyenlő-e nullával. Ebben az esetben a feltétel azt írja ki, hogy a karakterlánc üres, és melyik esetben a nyomtatási karakterlánc nem üres. A karakterláncban lévő szóközöket nem tekinti üresnek csak() , ami nem üres karakterláncot eredményez. Végül mindkét karakterlánc eredményét kinyomtattuk.

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

Kimenet:

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

Nem Operator + str.isspace()

Ugyanúgy ellenőrzi a szóközöket a sávban, mint a szalag() függvény igen. Azonban, szalag() A funkció sok időt vesz igénybe, ha nem str. isspace() mivel a strip()-nek egy strip műveletet kell végrehajtania, ami sok számítási munkát igényel.

Példa

Ebben a példában két típusú karakterláncot használtunk, a string1-et és a string2-t. A karakterlánc2 szóközöket tartalmaz, a string1 pedig egy üres karakterlánc. A „ha-else” feltételt használták. Használtuk a isspace() metódus az if else feltételben, amely ellenőrzi az összes karakterlánc-szóközt. Végül a kimenet kinyomtatott, és láthatja, hogy mindkét karakterlánc üres.

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

Kimenet:

savtulajdonságok adatbázisa
 string, string1 = '', with no spaces is not empty string, string2 = ' ', with spaces is not empty 

A len() + string.strip() használata

Pythonban használja a len() + string.strip() technikát a teljesen üres karakterlánc ellenőrzéséhez. A karakterláncban lévő szóközt a gombbal távolítja el string.strip() módszer. Ha van szóköz a karakterláncban, a szalag() módszer eltávolítja, és a csak() függvény ellenőrzi, hogy a karakterlánc üres-e vagy sem.

Példa

Függetlenül attól, hogy hány szóközt teszünk a karakterláncba, mindegyiket kihúzza, és ellenőrzi a karakterlánc hosszát; ha 0-t ad vissza, a karakterlánc üres; különben nem az.

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

Kimenet:

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

'és' Operator + strip() függvény használata

Észrevettük, hogy a karakterláncokban lévő szóközök nem mindig értelmezhetők üres karakterláncként. Tehát amikor használjuk a szalag() függvény segítségével ellenőrizhetjük, hogy a karakterlánc üres-e, valóban ellenőrizhetjük a szóközöket is.

Példa

azure előfizetés

Ebben a példában két bemeneti karakterláncot használtunk, a string1-et és a string2-t. A karakterlánc2 szóközöket tartalmaz, a string1 pedig egy üres karakterlánc. Ezután használtuk az if-else feltételt és a szalag() függvényt, hogy megnézze, hogy a karakterlánc üres-e vagy sem. Ha a feltétel False, akkor a karakterlánc üres, és ellenkező esetben a blokkok végrehajtásra kerülnek. A szóközt ebben a módszerben is üres karakterláncnak tekintjük. Végül az eredményt kinyomtatták.

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

Kimenet:

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

A Strip() függvény használata

Észrevettük, hogy a karakterláncokban lévő szóközök nem mindig értelmezhetők üres karakterláncként. Tehát amikor használjuk a szalag() függvény segítségével ellenőrizhetjük, hogy a karakterlánc üres-e, valóban ellenőrizhetjük a szóközöket is.

Példa

Ebben a példában két bemeneti karakterláncot használtunk, a string1-et és a string2-t. A string1 szóközöket tartalmaz, a karakterlánc2 pedig egy üres karakterlánc. Egy if else feltételt használtunk a karakterláncok eltávolítására, a szóközök eltávolítására, majd egy üres karakterlánc visszaadására, ha a karakterlánc üres lesz. A karakterlánc egyébként nem üres. Végül az eredményt kinyomtatták.

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

Kimenet:

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

Az __eq__ módszer használata

A dunder a metódusokat két aláhúzással azonosítja a nevük előtt és után. A __eq__ metódus használható üres karakterlánc ellenőrzésére is. Amikor felhívja a __eq__ Python technikájában a karakterlánc nem tekinthető üres karakterláncnak, ha szóközt tartalmaz.

Példa

Ebben a példában két bemeneti karakterláncot használtunk, a string1-et és a string2-t. A karakterlánc2 szóközöket tartalmaz, a string1 pedig egy üres karakterlánc. A __eq__ funkciót használták. Az if-else feltételben a megadott módszerrel ellenőriztük, hogy a karakterlánc üres-e vagy sem. Végül az eredményt kinyomtatták. Ebben a megközelítésben a szóközöket nem kezeli üres karakterláncként.

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

Kimenet:

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