logo

Kako preveriti, ali je niz prazen v Pythonu

Nizi Python ostanejo nespremenljivi, kar pomeni, da jih lahko spreminjamo glede na operacije, ki jih izvajamo. Najpomembnejša funkcionalnost Pythona je manipulacija z nizi. Za spreminjanje niza je mogoče uporabiti številne metode, vključno s pristopi rezanja nizov, zankanjem skozi elemente in metodami nizov. Bistveno je razumeti, da je niz s presledki dejansko prazen niz, ki ni ničelne dolžine. To vprašanje bo obravnavano v tej vadnici, pa tudi možno rešitev. Kot rezultat, ko uporabljamo samo() ali ' ne ' za preverjanje praznega niza, dejansko šteje presledek kot nič manj kot znak niza, zato niz s presledkom ne bo štel kot prazen niz.

V Pythonu lahko uporabimo enega od spodaj opisanih osnovnih načinov za preverjanje praznega niza.

  1. Uporaba operatorja not
  2. Uporaba funkcije len().
  3. Uporaba not + string.isspace()
  4. Uporaba len() + string.strip()
  5. Uporaba in + string.strip()
  6. Uporaba __eq__

Uporaba ne operaterja

The ne operater opravlja isto delo kot samo() funkcijo. V Pythonu je prazen niz dejansko enak False. The ne lahko uporabite za ugotavljanje, ali je niz res prazen ali ne. The ne operacija v Pythonu preprečuje, da bi bil niz interpretiran kot prazen niz, če vsebuje presledke.

Primer

V tem primeru smo uporabili dva tipa nizov, niz1 in niz2. Niz2 ima presledke, niz1 pa je prazen niz. Nato smo uporabili pogoj 'if else', da preverimo, ali je dani niz prazen, če ni v nizu. Ni pa prazen. Presledkov operator not ne obravnava kot prazne nize, zato izhod ne bo prazen niz v primeru drugega vhodnega niza. Končno je bil rezultat natisnjen.

Koda:

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

Izhod:

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

Uporaba metode len().

Uporabili bomo python samo() funkcijo za določanje dolžine niza. Če je dolžina niza enaka 0, je niz prazen; sicer pa ni. Pri uporabi samo() v Pythonu se niz v resnici ne obravnava kot prazen niz, če vsebuje presledke.

Primer

V tem primeru smo uporabili dve vrsti nizov, niz1 in niz2. Niz2 ima presledke, niz1 pa je prazen niz. Dolžina vsakega niza je bila nato izračunana s Pythonovo funkcijo len(). Nato smo z zanko 'if-else' preverili, ali je dolžina niza enaka nič, v tem primeru pogoj natisne, da je niz prazen, in v tem primeru niz za tiskanje ni prazen. Presledki v nizu se ne štejejo za prazne samo() , zaradi česar ni prazen niz. Nazadnje smo natisnili rezultat obeh nizov.

Koda:

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

Izhod:

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

Uporaba not Operator + str.isspace()

Preveri prazne prostore v traku na enak način kot trak() funkcija ne. vendar trak() funkcija traja dolgo časa v nasprotju z str. isspace() ker mora strip() izvesti operacijo stripa, kar zahteva veliko računalniškega dela.

Primer

V tem primeru smo uporabili dva tipa nizov, niz1 in niz2. Niz2 ima presledke, niz1 pa je prazen niz. Uporabljen je bil pogoj 'if-else'. Uporabili smo isspace() metoda v pogoju if else, ki preveri vse presledke nizov. Končno je bil izhod natisnjen in lahko vidite, da sta oba niza prazna.

Koda:

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

Izhod:

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

Uporaba len() + string.strip()

V Pythonu uporabite len() + string.strip() tehnika za preverjanje popolnoma praznega niza. Presledek v nizu se odstrani z uporabo string.strip() metoda. Če je v nizu kaj prostora, je trak() metoda ga odstrani in samo() funkcija preveri, ali je niz prazen ali ne.

Primer

Ne glede na to, koliko presledkov vstavimo v niz, jih vse odstrani in preveri dolžino niza; če vrne 0, je niz prazen; sicer pa ni.

Koda:

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

Izhod:

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

Uporaba operatorja 'in' + funkcija strip().

Opazili smo, da se presledki v nizih ne razlagajo vedno kot prazni nizi. Torej, ko uporabljamo trak() funkcijo za preverjanje, ali je niz prazen, dejansko lahko preverimo tudi presledke.

Primer

azurna naročnina

V tem primeru smo uporabili dva vhodna niza, niz1 in niz2. Niz2 ima presledke, niz1 pa je prazen niz. Nato smo uporabili pogoj if-else in trak() funkcijo, da vidite, ali je niz prazen ali ne. Če je pogoj False, je niz prazen, v nasprotnem primeru pa se bloki izvajajo. Presledek se pri tej metodi prav tako obravnava kot prazen niz. Končno je bil rezultat natisnjen.

Koda:

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

Izhod:

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

Uporaba funkcije Strip().

Opazili smo, da se presledki v nizih ne razlagajo vedno kot prazni nizi. Torej, ko uporabljamo trak() funkcijo za preverjanje, ali je niz prazen, dejansko lahko preverimo tudi presledke.

Primer

V tem primeru smo uporabili dva vhodna niza, niz1 in niz2. Niz1 ima presledke, niz2 pa je prazen niz. Uporabili smo pogoj if else, da odstranimo nize, odstranimo presledke in nato vrnemo prazen niz, če niz postane prazen. Niz sicer ni prazen. Končno je bil rezultat natisnjen.

Koda:

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

Izhod:

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

Uporaba metode __eq__

Dunder identificira metode z dvema podčrtajema pred in za njihovimi imeni. The __eq__ metodo lahko uporabite tudi za preverjanje praznega niza. Ob klicu na __eq__ v Pythonu se niz ne obravnava kot prazen niz, če vsebuje presledke.

Primer

V tem primeru smo uporabili dva vhodna niza, niz1 in niz2. Niz2 ima presledke, niz1 pa je prazen niz. The __eq__ funkcija je bila uporabljena. V pogoju if-else smo uporabili dano metodo za preverjanje, ali je niz prazen ali ne. Končno je bil rezultat natisnjen. Presledki se pri tem pristopu ne obravnavajo kot prazni nizi.

Koda:

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

Izhod:

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