Python - nizi

Python - nizi

Avtor: Daniel Prša

Niz/string

V tem učnem gradivu bom prikazal nekaj osnov iz nizov v programskem jeziku python.

V pythonu je niz (string) zaporedje znakov med enojnim ali dvojnim narekovajem, lahko je črka, število, ali katerikoli drugi znak.

(niz1.png)
niz / string

Na primerih vidimo, da se nam niz vedno izpiše v enojnem narekovaju.

Niz/string

Stikanje nizov


Nize lahko "seštejemo" (stikamo) brez presledkov.

'Janez' + 'Novak' => 'JanezNovak'

Če želimo presledek, ga moramo vpisati v sam niz.

' Novak'


Dolžina niza


Dolžino niza dobimo s funkcijo len. Len prešteje tudi presledke.

len(Janez) => 5

Dostop do posameznega znaka v nizu

Do nizov lahko dostopamo enako kot pri seznamih, to je preko indeksov. Prvi znak od leve proti desni ima indeks 0, drugi 1 in tako naprej. Lahko pa začnemo od zadnjega znaka, ta pa ima indeks -1, predzadnji -2 in tako naprej. Oglejmo si primer:

 niz = 'besedilo'


     b  e  s  e  d  i  l  o
     0  1  2  3  4  5  6  7
    -8 -7 -6 -5 -4 -3 -2 -1


Recimo, da hočemo izvedeti, kateri znak se nahaja na tretjem mestu v nizu besedilo. To je črka s. Do nje pridemo tako, da napišemo naslednji ukaz:

    niz[2]

poglej

    >>> niz = 'besedilo'
    >>> niz[2]
    's'


Lahko pa bi dostopali do črke s tudi z desne strani, takrat bi pa napisali:

    niz[-6] 

Rezanje nizov

Tudi nize lahko režemo. Vzemimo spet primer

    niz ='besedilo'

V oglatem oklepaju vpišemo indeks znaka, ki mu sledi dvopičje in indeks znaka, do katerega hočemo izrez. Pozor, znak s podanim indeksom se ne izpiše.

    niz[0:2]

Lahko pa uporabimo samo indeks in nato dvopičje in izpisalo se bo od "rezanega" indeksa do konca.

    niz[2:]

Če pa najprej vpišemo dvopičje in nato indeks, se bo izpisalo od začetka pa do podanega indeksa.

    niz[:3]

Če pa hočemo obrnjen izpis niza, pa napišemo dvakrat dvopičje in -1

    niz[::-1]

(2.png)
rezanje / slicing

Vgrajene metode

Pri nizih imamo cel kup vgrajenih metod, ki nam pridejo prav, ko želimo na nizih kaj spreminjati. Omenimo nekaj zanimivih.


upper / lower

Če hočemo niz izpisati v samo v velikih črkah uporabimo metodo upper . Metodo lower uporabimo, če hočemo imeti niz izpisan v malih črkah:

    niz='matematika'
    niz.upper()
    'MATEMATIKA'


replace

Kadar želimo na nizu kaj spremeniti ali zamenjati, je eden izmed načinov ta, da uporabimo metodo replace . V nizu matematika zamenjajmo vse a-je z o-ji:

    niz ='matematika'
    niz.replace('a','o')
    'motemotiko'


split

Metoda split vrne seznam nizov, ki jih loči presledek:

    niz='Danes je lep dan.'
    niz.split()
    ['Danes', 'je', 'lep', 'dan.']


list

S to metodo spremenimo niz v seznam. Potem lahko posamezne elemente spremeninjamo:

    niz='politika'
    seznam = list(niz)
    ['p', 'o', 'l', 'i', 't', 'i', 'k', 'a']


Več o vgrajenih metodah, si lahko prebereš tukaj

Zgled 1

Preštejmo število šumnikov v danem nizu.

  • Najprej od uporabnika preberemo niz.
  • Nato določimo kaj so šumniki.
  • Števec za štetje šumnikov bo na začetku 0.
  • Izpeljati moramo zanko, ki bo šla skozi niz in pogledala, ali je kak znak šumnik.
  • Če je znak med šumniki, se bo števec povečal za 1.
  • Na koncu izpišemo število šumnikov.

Če želiš lahko kodo preizkusiš tudi sam:

(python.jpg) sumniki.py

Vprašanje 1

Podan imamo naslednji niz:

    tekst = 'informatika'

Kaj se bo izpisalo, če vnesemo naslednji ukaz:

     text[-4:]

'rmatika'
'info'
'tika'
NameError: ...

Pravilno

Ime spremenljivke (niza) je tekst in ne text.

Naprej

Napačno

Ime spremenljivke (niza) je tekst in ne text.

Naprej

Vprašanje 2

Podan imamo naslednji niz:

    x = 'izvesti'

Kateri ukaz moramo vpisati, da se nam bo izpisal x brez prve in zadnje črke, torej 'zvest'

Preveri

Pravilno

Indeksi se v nizu začnejo vedno z nič in končajo pri -1.

Naprej

Napačno

Poskusi še enkrat.
Namig: indekse v nizu štejemo od 0.

Ponovno

Indeksi se v nizu začnejo vedno z nič in končajo pri -1.

Naprej

Vprašanje 3

Podan imamo naslednji niz:

     a = 'beseda'

Poveži ustrezne ukaze z odgovori:

 a[2:5]
 a.replace('a','e')
 a.upper()
 a.lower()
 len(a)
 'sed' 
 'besede' 
 'BESEDA' 
 'beseda' 
 6 

Preveri

Pravilno

Želiš nadaljevati z naslednjim vprašanjem?

Naprej Ponovno

Napačno

Želiš nadaljevati z naslednjim vprašanjem?

Naprej Ponovno

Vprašanje 4

Katera izmed naštetih trditev o nizih drži?
Izberi vsaj en odgovor.


Preveri

Želiš nadaljevati z naslednjim vprašanjem?

Naprej Nazaj

Želiš nadaljevati z naslednjim vprašanjem?

Naprej Nazaj

Vprašanje 5

Podan imamo naslednji niz:

    niz ='vreme' 

Kaj se izpiše, če vnesemo naslednji ukaz: niz[ ]

Preveri

Potrdi svoj odgovor:

Naprej Nazaj

Potrdi svoj odgovor:

Naprej Nazaj

Rezultat kratkega testa

0%
0%