160 likes | 355 Views
Python - nizi. 'Jaz sem en niz'. Nizi. ime = 'Matija ' Zaporedje znakov med ' Uporabljamo lahko tudi " priimek = "Lokar" In seveda vzdevek = 'Janez, imenovan tudi "Mirko"'. Stikanje nizov. + stakne dva niza Brez "dodatnih" presledkov 'Matija' + 'Lokar' ' MatijaLokar '
E N D
Python - nizi 'Jaz sem en niz'
Nizi • ime = 'Matija' • Zaporedje znakov med ' • Uporabljamo lahko tudi " • priimek = "Lokar" • In seveda • vzdevek = 'Janez, imenovan tudi "Mirko"'
Stikanje nizov • + stakne dva niza • Brez "dodatnih" presledkov • 'Matija' + 'Lokar' 'MatijaLokar' • Branje nizov • input
Dolžina niza, posamezni znak, ... • Dolžina niza: funkcijalen() • Objekt.metodatorej <nekaj, kar je niz>.length() • len(priimek) • len("matija") 6 • Znak na i-tem mestu [i] • ime[1] • Znake štejemo od 0 dalje! • "Blabla"[3] • b • ime = "Matija" • ime[1] a
Ampak … • Nizov ne moremo spreminjati • beseda = 'abeceda' • beseda[0] = 'A' • Seveda lahko naredimo • ime = 'Žiga' • ime = ime + ' Lokar' • A smo s tem dejansko naredili nov niz (in ga potem priredili k staremu)
Primerjanje nizov • Nize primerjamo leksikografsko (po abecedi) • Niz "Matija" je manjši kot niz "Mojca", ker sta prva znaka enaka, drugi znak pa je v prvem nizu manjši kot ('o') v drugem nizu • 'Matija' == 'Mat' + "ija" • …
Primerjanje znakov • posamezni znaki • Python jih ne pozna • Posamezni znaki – nizi dolžine 1 • primerjanje znakov • 'a' < 'b' < 'c' < … < 'z' • '0' < '1' < … < '9' • 'A' < 'B' < 'C' < … < 'Z' • vmes v teh treh zaporedjih ni nobenih drugih znakov • ('0' <= preverjaniZnak) and (preverjaniZnak <= '9') • True: v spremenljivki preverjaniZnak je števka • A Python dovoljuje veriženje primerjan, zato tudi … • '0' <= preverjaniZnak <= '9'
Iz niza v seznam … in nazaj • V seznam • beseda = 'Ni konj' • seznam = list(beseda) • ['N', 'i', ' ', 'k', 'o', 'n', 'j'] • In nazaj • join • ''.join(seznam) • Ampak tudi • '-#-'.join(seznam) • 'N-#-i-#- -#-k-#-o-#-n-#-j' • ':'.join(['Ma','ti','ja!']) • 'Ma:ti:ja!'
Iz niza v seznam • Split • Vrne seznam nizov, ki jih loči presledek • "To je stavek.".split() • ['To', 'je', 'stavek.'] • In sedaj znamo prebrati več podatkov hkrati • vnos = input('Vnesi dve števili, ločeni s presledkom').split() • prvoStevilo = int(vnos[0]) • drugoStevilo = int(vnos[1]) • Ločilo je lahko tudi drugačno • '12/3/99'.split('/') • ['12', '3', '99']
Obrni niz • Preberi niz in ga izpiši obrnjeno! • Matija ajitaM • Zanka • Pregledamo vse znake v nizu (dolžina niza) • while i < len(niz) : • Dodajamo na začetek • obNiz = niz[i] + obNiz
In tudi • seznam = list(niz) • seznam.reverse() • obrnjeniNiz = ''.join(seznam) • Ali pa • obrnjeniNiz = ''.join(list(niz)[::-1]) • Ali pa • …
Rezanje • Tudi nize lahko režemo • In velja vse tako kot pri nizih • Razen … • Del • >>> besed = "blablabla" • >>> del besed[1:2] • Traceback (most recent call last): • File "<pyshell#33>", line 1, in <module> • del besed[1:2] • TypeError: 'str' object does not support item deletion • In popravljanja "na mestu" • besed[2:4] = 'mat' • besed = besed[:2] + 'mat' + besed[4:]
Zgled • besed = 'Abecednik' • # besed[2:4] = 'mat' ne gre • print(besed) • besed = besed[:2] + 'mat' + besed[4:] • print(besed) • #Kako pa z nizi • besed = 'Abecednik' • seznamBesed = list(besed) • nazajVNiz = ''.join(seznamBesed) • print(seznamBesed) • print(nazajVNiz) • seznamBesed[2:4] = list('mat') • nazajVNiz = ''.join(seznamBesed) • print(seznamBesed) • print(nazajVNiz) • seznamBesed = list(besed) • seznamBesed = seznamBesed[:2] + list('mat') + seznamBesed[4:] • nazajVNiz = ''.join(seznamBesed) • print(seznamBesed) • print(nazajVNiz)
In njegovi rezultati >>> Abecednik Abmatednik ['A', 'b', 'e', 'c', 'e', 'd', 'n', 'i', 'k'] Abecednik ['A', 'b', 'm', 'a', 't', 'e', 'd', 'n', 'i', 'k'] Abmatednik ['A', 'b', 'm', 'a', 't', 'e', 'd', 'n', 'i', 'k'] Abmatednik >>>
Zato seveda (obračanje) • obrnjenaBeseda = beseda[::-1] • >>> obrnjenaBeseda = beseda[::-1] • >>> obrnjenaBeseda • 'jnokiN' • >>> beseda • 'Ni konj' • >>>