Nizi znakov so zaporedja črk, številk in ločil. Tvorimo jih lahko preprosto s pomočjo navednic. Uporabljamo lahko enojne navednice (apostrofe) ali dvojne (narekovaje). Nize lahko na primer dodelimo spremenljivkam in jih kasneje tako naslavljamo:
txt1 = 'Pozdravljen svet!' |
Python ne podpira posameznih znakov. Te obravnavamo kot niz znakov z dolžino 1. Posamezen znak v nizu je torej podniz.
Podniz naslavljamo tako, da uporabimo oglate oklepaje in indeks, ki kaže začetek podniza. Lahko pa navedemo indeks začetka podniza in indeks znaka za nizom.
Primer:
Opazimo, da indeks v zaporedjih (v našem primeru nizih znakov) začne z vrednostjo 0. Zato je za podniz1 izpisal znak P, za podniz2 pa rogr
Kadarkoli lahko posodobimo niz tako, da spremenljivki dodelimo nek drug niz. Pri tem lahko uporabimo tudi dele prejšnjega niza.
Primer:
Pri izvedbi tega programčka dobimo izpis "Pozdrav soncu".
Naslednja tabela prikazuje nekatere znake, ki jih ne moremo natisniti, imajo pa nek poseben pomen. Pri njihovi navedbi v nizu uporabljamo povratnico (vzvratno poševno črto)
Označba s povratnico |
Opis oziroma pomen |
---|---|
\a | Zvonček oziroma alarm |
\b | Povratek za eno mesto nazaj (backspace) |
\e | Pobežni znak (Escape) |
\f | Pomik na naslednjo vrstico (Formfeed) |
\n | Skok v novo vrstico |
\r | Povratek vozička (skok na začetek vrstice) |
\s | Presledek |
\t | Tabulator |
\v | Vertikalni tabulator |
\x | Znak x |
\nnn | Osmiška notacija, pri tem je n znak v območju 0.7 |
\xnn | Šestnajstiška notacija, pri tem so znaki v območju 0.9, a.f, ali A.F |
Imejmo spremenljivko a, ki naslavlja niz "Pozdrav", in spremenljivko b, ki naslavlja niz "Soncu". Pokažimo možne operatorje nad tema dvema nizoma:
Operator | Opis | Primer |
---|---|---|
+ | Veriženje: sešteje oziroma združi oba operanda v nov niz | st1 + b bo dal PozdravSoncu |
* | Ponavljanje: Tvori nov niz z veriženjem vel kopij istega niza | a*2 bo dal PozdravPozdrav |
[] | Rezina : vrne podniz z znakom pod danim indeksom | a[2] bo dal z |
[ : ] | Območje rezine - Vrne podniz z znaki v danem območju | a[1:4] bo dal ozd |
in | Članstvo: Vrne True, če znak obstaja v danem nizu | z in a bo dal True |
not in |
Članstvo: Vrne True, če znaka ni v danem nizu | M not in bo dal True |
r/R | operator "r" pomeni Raw String. Izniči dejanski pomen pobežnih znakov. "r" je lahko mala ali velika črka, ki mora biti postavljena pred prvo navednico. Sintaksa za surove nize je popolnoma enaka kot pri običajnih nizih z izjemo operaterja surovega niza, črke "r", ki je pred narekovaji. | print r'\n' prints \n and print R'\n'prints \n |
% | Format Oblikuje (formatira) niz | Več o tem v nadaljevanju |
Uporabimo operator %.
print "Moje ime je %s, moja teža je %d kg!" % ('Janez', 65)
When the above code is executed, it produces the following result −
My name is Zara and weight is 21 kg!
Seznam vseh simbolov, ki jih skupaj z znakom % uporabimo pri oblikovanju:
Simbol formata | Pretvorba |
---|---|
%c | znak |
%s | Pred formatiranjem pretvori niz s str() |
%i | decimalno celo število s predznakom |
%d | decimalno število s predznakom |
%u | decimalno število brez predznaka |
%o | osmiško število |
%x |
šestnajstiško število (male črke) |
%X | šestnajstiško število (velike črke) |
%e | notacija z eksponentom (z malim 'e') |
%E |
notacija z eksponentom (veliki 'E') |
%f | realno število z decimalno piko |
%g | krajša oblika za %f in %e |
%G | krajša oblika za %f in %E |
Poleg tega imamo še naslednje simbole in možnosti
Simbol | Kaj naredimo |
---|---|
* |
argument določa širino oziroma natančnost |
- | leva poravnava |
+ | prikaz predznaka |
<sp> | pusti presledek pred pozitivnim številom |
# | dodaj osmiško vodečo ničlo( '0' ) ali šestnajstiško vodeče '0x' ali '0X' glede na to, ali smo uporabili 'x' ali 'X'. |
0 | zapolni na levi z ničlami(namesto s presledki) |
% | '%%' imamo en sam literal '%' |
(var) |
preslikava spremenljivke (argumenti slovarja) |
m.n. | m je minimalna celotna širina in n je število cifer za decimalno piko. |
V Pythonu lahko s trojnimi navednicami imamo nize, ki so razširjeni preko več vrstic. Kot trojno navednico lahko uporabimoi tri apostrofe ali tri narekovaje.
Normalni nizi so interno kodirani kot 8 bitni ASCII, Unicode pa pomni znake s 16 biti. To omogoča tudi uporabo posebnih znakov, vključno z našimi šumniki
Python ima za delo z nizi več vgrajenih metod. Metode na nizih uporabimo tako:
rezultat = niz.metoda() |
V spodnjem oknu vidimo nekaj primerov. Preskusimo lahko pa tudi druge metode::
Metoda | Opis metode |
---|---|
capitalize() | Začetnica niza bo velika črka |
center(sirina, polnilo) | Vrne niz, zapolnjen sz znakom polnila do podane širine. Prvoten niz bo centriran. |
count(str,i1,i2) | Šteje, kolikokrat nastopi str v nizu (ali podnizu, če sta podana začetni in končni indeks) |
decode(encoding='UTF-8',errors='strict') | Dekodira niz s podanim kodekom |
encode(encoding='UTF-8',errors='strict') | Vrne kodiran niz |
endswith(pripona, i1, i2) | Ugotovi, ali se niz (ali njegov podniz, če sta podana indeksa začetka in konca) konča s podano pripono. Tedaj vrne True, sicer vrne False. |
expandtabs(velikost) | Razširi tabulatorje v nizu. Če velikost ni podana, bo tabulator ekvivalente 8 presledkom |
find(niz2,i1, i2) | Ugotovi, ali niz2 nastopa v nizu in verne njegov indeks. Če sta podana indeksa i1, i2, išče v delu niza. Če niza niz2 ne najde, vrne -1 |
index(niz2, i1, i2) | isto kot find(), a sproži izjemo, če niza niz2 ne najde. |
isalnum() | Vrne True, če ima niz vsaj en znak in so vsi znaki v nizu alfanumerični. Sicer vrne False. |
isalpha() | Vrne True, če ima niz vsaj en znak in so vsi znaki v nizu črke. Sicer vrne False. |
isdigit() | Vrne True, če so vsi znaki v nizu številke. Sicer vrne False. |
islower() | Vrne True, če ima niz vsaj en znak in med njimi ni velikih črk. Sicer vrne False. |
isnumeric() | Vrne True, če ima unicode niz le števila. Sicer vrne False. |
isspace() | Vrne True, če ima niz le presledke. Sicer vrne False. |
istitle() | Vrne True, če se v nizu vse besede začnejo z veliko začetnico, ostale črke pa so male. Sicer vrne False. |
isupper() | Vrne True, če je v nizu vsaj ena črka in so vse črke velike. |
join(zaporedje) | Poveže predstavitve nizov, podanih v zaporedju, v nov niz z ločili. |
len(string) | Vrne dolžino niza |
ljust(širina[, polnilo]) | Vrne levo poravnan niz, ki je do podane širine zapolnjen z znakom polnila. |
lower() | V nizu prevori vse velike črke v male. |
lstrip() | Odstrani vse vodeče presledke v nizu. |
maketrans() | Vrne preslikovalno tabelo, ki jo uporabimo v funkciji translate. |
max(niz) | Vrne maksimalni alfabetični znak v podanem nizu. |
min(niz) | Vrne minimalni alfabetični znak v podanem nizu. |
replace(staro, novo [, maks]) | Nadomesti vse nastope starega niza z novim. Morebitni maks pove maksimalnom število zamenjav. occurrences if max given. |
rfind(niz2, i1,i2) | Isto kot find(), vendar vzvratno iskanje v nizu. |
rindex(niz2, i1, i2) | Isto kot index(), le vzvratno iskanje v nizu |
rjust(širina[, polnilo]) | Vrne ldesno poravnan niz, ki je do podane širine zapolnjen z znakom polnila. |
rstrip() | Odstrani vse presledke na repu niza. |
split(separator, num) | Razbije niz glede na ločilo separator. in vrne seznam teh podnizov. Num lahko pove, na največ koliko podnizov delimo niz. |
splitlines( num) | Razdeli niz na num vrstic in vrne seznam vrstic, iz katerih so znaki \n odstranjeni. |
startswith(niz2, i1,e i2) | Ugotovi, če niz ali podniz niza začne s podnizom niz2. Vrne True, če je to res, Sicer vrne False. |
strip([znaki]) | Na nizu opravi operacijo lstrip() in rstrip(). |
swapcase() | V nizu spremeni vse velike črke v male in obratno. |
title() | Vrne niz v obliki, ko se vse besede začnejo z veliko začetnico, ostale črke pa so majhne. |
translate(table, brisaniZnaki) | Preslika niz v skladu s preslikovalno tabelo str(256 znakov), Odstrani tiste znake, ki so navedeni v nizu brisaniZnaki. |
upper() | Pretvori male črke v velike. |
zfill (sirina) | Vrne originalni niz, na levi zapolnjen z ničlami do končne celokupne širine. Uporabno za števila. Obdrži predznak. |
isdecimal() | Vrne True, če ima unicode niz le decimalne znake. Sicer vrne False. |