Strune so eden od osnovnih podatkovnih vrst v Pythonu. Strun Python je kombinacija poljubnega števila znakov iz črk, številk in drugih posebnih znakov. V tej vadnici boste izvedeli, kako jih ustvariti, upravljati in formatirati za uporabo v različnih scenarijih.
Če želite ustvariti nov niz Python, morate prijaviti zaporedje znakov, zaprtih z enojnimi ali dvojnimi narekovaji. Trojni narekovaji se uporabljajo tudi za nize, dolge več vrstic.
double_quotes = 'My name is John!' single_quotes = 'My name is John!' multi_line_string = '''1. My name is John!
2. I am a programmer'''
Vsak znak v nizu Python ima celoštevilski indeks. Indeksiranje se začne od 0 na prvem znaku in narašča po nizu. Kazalo posameznega znaka lahko uporabite za pridobivanje tega znaka iz niza, kot prikazuje naslednji primer.
myPet = 'Dog not a cat' myPet[0] # 'D' myPet[5] # 'o' myPet[7] # ' ' myPet[12] # 't' # myPet[15] # IndexError
Poskus dostopa do znaka, ki presega indeks končnega znaka, povzroči rezultat IndexError .
Do znaka v nizu lahko dostopate z negativnim indeksom. V tem primeru se indeksiranje začne pri -1 pri končnem znaku niza in se negativno poveča, ko se vrnete nazaj.
myPet = 'Dog not a cat' myPet[-1] # 't' myPet[-6] # ' ' myPet[-8] # 'o' myPet[-13] # 'D'
Rezanje je metoda pridobivanja podniza (dela niza) iz niza. To nalogo dosežemo s pomočjo indeksiranja nizov.
myPet = 'Dog not a cat' myPet[5:7] # 'ot' myPet[1:12] # 'og not a ca'
Tu sta na voljo dva indeksa, ločena s dvopičjem, prvi indeks označuje, kje začeti rezanje, drugi indeks pa, kje se ustaviti. Nastali podniz vključuje znake od začetnega indeksa do znaka pred končnim indeksom, znak na končnem indeksu ni vključen v podniz.
Če ne navedete začetnega indeksa, se rezanje začne pri prvem znaku niza. Če ne navedete končnega indeksa, se rezanje konča pri končnem znaku, medtem ko ga vključite v nastali podniz.
myPet = 'Dog not a cat' myPet[:7] # 'Dog not' myPet[10:] # 'cat' myPet[:] # 'Dog not a cat'
Negativne indekse lahko navedete tudi kot indekse rezanja.
myPet = 'Dog not a cat' myPet[10:-1] # 'ca'
Vgrajena metoda Python len()
izpiše dolžino niza.
myPet = 'Dog not a cat' len(myPet) # 13
Vsak znak v nizu lahko pregledujete s pomočjo for
zanko.
Primer:
name = 'John' for char in name:
print(char) # 'J', 'o', 'h', 'n'
Združevanje nizov je združevanje dveh ali več nizov, da se ustvari en sam niz. V Pythonu obstaja več načinov za združevanje nizov.
Eden uporablja +
operater.
str1 = 'Hello' str2 = 'World' concat_str = str1 + str2 # 'HelloWorld' concat_str = str1 + ' ' + str2 # 'Hello World'
Uporabite lahko *
operator, da si niz poveže poljubno številokrat.
concat_str = str1*3 # 'HelloHelloHello'
Drug način za združevanje nizov je preko join()
metoda.
Vgrajeni join()
metoda se uporablja za združevanje nizov nizov s skupnim ločevalnikom.
arr = [str1, str2] concat_str = (' ').join(arr) # 'Hello World' concat_str = (',').join(arr) # 'Hello,World'
V zgornji kodi prva join()
metoda doda presledek med vsako besedo v matriki.
Drugi join()
metoda vstavi vejico med vsako besedo v matriki.
V Pythonu lahko niz združimo tudi v celo število, ne pa tudi z +
operater. Če poskusimo uporabiti naslednjo kodo:
name = 'John' age = 35 print(a + b)
Dobili bi:
Traceback (most recent call last): File 'concat.py', line 5, in
print(a + b) TypeError: can only concatenate str (not 'int') to str
Opomba:Z nizom +
ni mogoče združiti niza in celotnega števila operater.Da bi se izognili tej napaki, lahko uporabimo str()
metoda za pretvorbo celotnega števila v niz, na primer:
name = 'John ' age = '35' print(a + str(b)) #John 35
Vgrajeni split()
metoda se uporablja za razdelitev posameznega niza v niz nizov.
string = 'My name is John' split_arr = string.split(' ') # ['My', 'name', 'is', 'John'] We can also split a string using a separator: string = 'John, Rose, Jack, Mary' split_arr = string.split(', ') # ['John', 'Rose', 'Jack', 'Mary']
strip()
, vgrajena metoda nizov se uporablja za odstranjevanje presledkov z začetka in konca niza.
string = ' Hello, World ' stripper_str = string.strip() # 'Hello, World'
Kot lahko vidite, strip()
ne odstrani presledkov, ki so med drugimi znaki, ampak samo na obeh koncih.
Obstajata dve različici strip()
metoda, levi in desni trak:
lstrip()
rstrip()
Te metode odstranjujejo presledke na levi in desni strani niza.
Primer:
lsplit_str = string.lstrip() # 'Hello, World ' rsplit_str = string.rstrip() # ' Hello, World'
Strip metode so še posebej uporabne pri branju uporabniških vnosov, kjer lahko uporabniki prenesejo dodatne presledke.
Python's format()
metoda se uporablja za oblikovanje niza. Kodraste oklepaje {}
se uporabljajo znotraj niza, ki ga je treba oblikovati kot nadomestno oznako za del, ki ga je treba nadomestiti z argumenti, ki so podani v metoda.
Primer:
format()
V zgornjem primeru 'Hello, {}'.format('John') # 'Hello, John'
se v oblikovanem nizu nadomesti z 'John'.
Za oblikovanje lahko uporabite več kodrastih oklepajev znotraj niza. Nadomeščajo jih argumenti v obliki {}
ali v predvidenem vrstnem redu (če v zavihkih niso omenjeni položajni indeksi) ali pozicijskem vrstnem redu.
Primer:
format()
Namesto indeksov lahko argumentu 'I have a {}, {}, and a {}'.format('dog', 'cat', 'rabbit') # 'I have a dog, cat, and a rabbit' 'I have a {1}, {0}, and a {2}'.format('dog', 'cat', 'rabbit') # 'I have a cat, dog, and a rabbit'
navedete ključne besede tako, da se te ključne besede lahko uporabijo v zavitih oklepajih.
Primer:
format()
The print('{friend} is my friend and {enemy} is my enemy'.format(friend='John', enemy='Jack')) # 'John is my friend and Jack is my enemy'
metoda je zelo vsestranska, saj jo lahko uporabimo za številne primere uporabe.
Tu je nekaj drugih aplikacij format()
metoda:
format()
Uporaba Pythonovih arr = [3, 5] 'I have {0[0]} dogs and {0[1]} cats'.format(arr) # 'I have 3 dogs and 4 cats' #convert numbers to different bases 'int: {0:d}; hex: {0:x}; oct: {0:o}; bin: {0:b}'.format(42) # 'int: 42; hex: 2a; oct: 52; bin: 101010'
, lahko pretvorite niz v male črke.
Primer:
lower()
Podobno tudi z uporabo Pythona string = 'Hello, World!' string.lower() # 'hello, world!'
, lahko pretvorite niz v velike črke.
Primer:
upper()
Upam, da ste s pomočjo te vadnice zdaj poznali Pythonove strune in kako uporabljati različne metode za nizalne operacije.
Referenca: Pythonova niz dokumentacija