logo

Cum să verificați dacă un șir este gol în Python

Șirurile Python rămân imuabile, ceea ce înseamnă că le putem schimba în funcție de operațiunile pe care le executăm. Cea mai semnificativă funcționalitate a lui Python este manipularea șirurilor. Multe metode, inclusiv abordări de tăiere a șirurilor, buclă prin elementele sale și metode de șir, pot fi utilizate pentru a modifica șirul. Este vital să înțelegem că un șir cu spații este efectiv un șir gol de lungime diferită de zero. Această problemă va fi discutată în acest tutorial, precum și un posibil remediu. Ca urmare, atunci când folosim numai() sau ' nu ' pentru a verifica dacă există un șir gol, acesta numără spațiul ca nimic mai puțin decât un caracter al șirului, prin urmare un șir cu spațiu nu va fi numărat ca șir gol.

În Python, putem folosi una dintre modalitățile de bază descrise mai jos pentru a verifica dacă există un șir gol.

  1. Folosind not operator
  2. Folosind funcția len().
  3. Folosind not + string.isspace()
  4. Folosind len() + string.strip()
  5. Folosind și + string.strip()
  6. Folosind __eq__

Folosind not Operator

The nu operatorul îndeplinește aceeași muncă ca și numai() funcţie. În Python, un șir gol este într-adevăr egal cu False. The nu operator poate fi folosit pentru a determina dacă un șir este într-adevăr gol sau nu. The nu operațiunea în Python împiedică șirul de a fi interpretat ca un șir gol dacă conține spații.

Exemplu

Am folosit două tipuri de șiruri, șir1 și șir2, în acest exemplu. Șirul2 are spații albe, iar șirul1 este un șir gol. Apoi am folosit o condiție „dacă altfel” pentru a verifica dacă șirul dat este gol dacă nu este în șir. Nu este, însă, gol. Spațiile albe nu sunt tratate ca șiruri goale de către operatorul not, prin urmare rezultatul nu va fi un șir gol pentru cazul celui de-al doilea șir de intrare. În cele din urmă, rezultatul a fost tipărit.

Cod:

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

Ieșire:

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

Folosind metoda len().

Vom folosi python's numai() funcția de determinare a lungimii șirului. Apoi, dacă lungimea șirului este egală cu 0, șirul este gol; altfel, nu este. Când utilizați numai() tehnică în Python, șirul nu este cu adevărat considerat ca un șir gol dacă conține spații.

Exemplu

Am folosit două tipuri de șiruri, șir1 și șir2, în acest exemplu. Șirul2 are spații albe, iar șirul1 este un șir gol. Lungimea fiecărui șir a fost apoi calculată folosind funcția len() a lui Python. Apoi am folosit bucla „if-else” pentru a verifica dacă lungimea șirului este egală cu zero, caz în care condiția afișează că șirul este gol și, în acest caz, șirul de tipărire nu este gol. Spațiile albe din șir nu sunt considerate goale de numai() , rezultând un șir nu gol. În cele din urmă, am tipărit rezultatul ambelor șiruri.

Cod:

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

Ieșire:

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

Folosind not Operator + str.isspace()

Verifică dacă există spații albe în bandă în același mod în care bandă() funcția face. In orice caz, bandă() funcția durează mult timp când este opus str. isspace() deoarece strip() trebuie să execute o operație strip, care necesită multă muncă de calcul.

Exemplu

Am folosit două tipuri de șiruri, șir1 și șir2, în acest exemplu. Șirul2 are spații albe, iar șirul1 este un șir gol. A fost folosită condiția „dacă altfel”. Noi am folosit isspace() metoda în condiția if else, care verifică toate spațiile șirurilor. În cele din urmă, rezultatul a fost imprimat și puteți vedea că ambele șiruri sunt goale.

int un șir java

Cod:

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

Ieșire:

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

Folosind len() + string.strip()

În Python, utilizați len() + string.strip() tehnică de verificare pentru un șir complet gol. Spațiile albe dintr-un șir sunt eliminate folosind string.strip() metodă. Dacă există spațiu în șir, bandă() metoda îl elimină, iar numai() funcția verifică dacă șirul este gol sau nu.

Exemplu

Indiferent de câte spații punem în șir, le dezlipește pe toate și verifică lungimea șirului; dacă returnează 0, șirul este gol; altfel, nu este.

Cod:

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

Ieșire:

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

Folosind funcția „și” Operator + strip().

Am observat că spațiile albe din șiruri nu sunt întotdeauna interpretate ca șiruri goale. Deci, atunci când folosim bandă() pentru a verifica dacă șirul este gol, într-adevăr putem verifica și spațiile albe.

Exemplu

Am folosit două șiruri de intrare, șir1 și șir2, în acest exemplu. Șirul2 are spații albe, iar șirul1 este un șir gol. Am folosit apoi condiția if-else și bandă() funcția pentru a vedea dacă șirul a fost gol sau nu. Dacă condiția este False, șirul este gol, iar blocurile sunt executate altfel. Spațiul alb este, de asemenea, considerat un șir gol în această metodă. În cele din urmă, rezultatul a fost tipărit.

Cod:

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

Ieșire:

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

Utilizarea funcției Strip().

Am observat că spațiile albe din șiruri nu sunt întotdeauna interpretate ca șiruri goale. Deci, atunci când folosim bandă() pentru a verifica dacă șirul este gol, într-adevăr putem verifica și spațiile albe.

Exemplu

Am folosit două șiruri de intrare, șir1 și șir2, în acest exemplu. Șirul1 are spații albe, iar șirul2 este un șir gol. Am folosit o condiție if else pentru a elimina șirurile, eliminând spațiile albe și apoi returnând un șir gol dacă șirul devine gol. În caz contrar, șirul nu este gol. În cele din urmă, rezultatul a fost tipărit.

Cod:

imprimare model stea
 #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') 

Ieșire:

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

Folosind metoda __eq__

Dunder identifică metodele cu două caractere de subliniere înainte și după numele lor. The __eq__ metoda poate fi folosită și pentru a verifica dacă există un șir gol. Când sunați la __eq__ tehnică în Python, șirul nu este considerat un șir gol dacă conține spații.

Exemplu

Am folosit două șiruri de intrare, șir1 și șir2, în acest exemplu. Șirul2 are spații albe, iar șirul1 este un șir gol. The __eq__ funcția a fost folosită. În condiția if-else, am folosit metoda dată pentru a verifica dacă șirul este gol sau nu. În cele din urmă, rezultatul a fost tipărit. Spațiile albe nu sunt tratate ca șiruri goale în această abordare.

Cod:

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

Ieșire:

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