Projekt Pronal Projekt Pronal

Kazalo:
Sofinasiranje projekta
Starejši - zbirka nalog...
Tekmovanja...
Tekmovanja - dopolni...
Tekmovanja - Parsons...
Tekmovanja - popravi...
Starejši - učbenik
Funkcije
If stavek
Izpisi
Množice
Nizi
Pisanje in popravljanje programa
Seznami in nizi
Slovarji
Spoznajmo Python
Uvod v funkcije
Zanka for
Zanka while
Nizi

Nizi


Nizi - kratka razlaga

Nizi v Pythonu so nespremenljivi, kar pomeni, da spreminjanje obstoječega niza ni mogoče. Ustvariti moramo nov niz in pri tem uvesti želene spremembe. Nize ponavadi ustvarimo tako, da znake obdamo z enojnimi ' ali dvojnimi " narekovaji, ali pa ukaze oz. druge tipe obdamo s str(). Med seboj lahko nize vežemo s +, *, ,, += itd. Vsak znak ima v nizu tudi svoj indeks (število, ki označuje mesto znaka v nizu). Ukaz niz[4] nam vrne znak na petem mestu v nizu, saj se indeksi začnejo s številom $0$. Nize se da tudi rezati in sicer niz[zacetni_indeks : koncni_indeks : korak]. Tak izraz nam vrne niz, ki za prvi znak vzame znak z indeksom zacetni_indeks in nato s korakom korak jemlje naslednje znake do znaka z indeksom koncni_indeks. Znak z indeksom koncni_indeks je prvi znak, ki ga ne vzamemo več. Če izpustimo število pred prvim dvopičjem nam jemlje znake od začetka, če spustimo število za drugim dvopičjem nam jemlje znake do konca in če spustimo drugo dvopičje in število za njem pa nam vzame za korak število $1$.

Na primer:

>>> niz = 'abcdefg'
>>> niz[2:4]
'cd'
>>> niz[:4]
'abcd'
>>>niz[:]
'abcdefg'
>>>niz[::2]
'aceg'
>>>niz[::-1]
'gfedcba'

Prav tako pa se da nad nizi izvajati več metod npr. len(), print() itd. Več o teh metodah lahko najdete tukaj ali tukaj.

=====================================================================@000000=

To je predloga za novo podnalogo. Če želite ustvariti novo podnalogo,

pobrišite komentarje ter vsebino zamenjajte s svojo.

Sestavite funkcijo zmnozi(x, y), ki vrne produkt števil x in y.

Na primer:

>>> zmnozi(3, 7)

21

>>> zmnozi(6, 7)

42

=============================================================================

def zmnozi(x, y): return x * y

Check.part()

Check.equal('zmnozi(3, 7)', 21) Check.equal('zmnozi(6, 7)', 42) Check.equal('zmnozi(10, 10)', 100) Check.secret(zmnozi(100, 100)) Check.secret(zmnozi(500, 123))


Nizi - naloge

1. podnaloga

Napišite funkcijo, stevilo(n), ki sprejme število n in vrne niz 'Izbrali ste število n.'.

>>> stevilo(7)
'Izbrali ste število 7.'
>>> stevilo(12345)
'Izbrali ste število 12345.'

Uradna rešitev

def stevilo(n):
    """Vrne niz 'Izbrali ste število n.'"""
    return 'Izbrali ste število ' + str(n) + '.'

2. podnaloga

Do znaka v nizu na določenem mestu dostopamo s pomočjo njegovega indeksa oz. zaporednega števila. Python začne šteti z 0 in nadaljuje naprej po celih številih. Python ima to posebnost, da lahko uporabljamo tudi negativne indekse. Te se začnejo šteti z -1, -2, ... . Indeks -1 ima zadnji znak v nizu, -2 predzadnji itd. Naprimer:

>>> a = 'abcčdefg'
>>> a[0]
'a'
>>> a[2]
'c'
>>> a[-2]
'f'

Napišite funkcijo tretji_znak(niz), ki vrne znak z indeksom 2 v nizu. Predpostaviš lahko da je niz vedno dovolj dolg.

>>> tretji_znak('niz')
'z'
>>> tretji_znak('1023')
'2'

Uradna rešitev

def tretji_znak(niz):
    """Vrne znak z indeksom 2 v nizu."""
    return niz[2]

3. podnaloga

Napišite funkcijo predzadnji_znak(niz), ki vrne znak z indeksom -2 v nizu. Predpostavite lahko da je niz vedno dovolj dolg.

>>> predzadnji_znak('niz')
'i'
>>> predzadnji_znak('1023')
'2'

Uradna rešitev

def predzadnji_znak(niz):
    """Vrne znak z indeksom 2 v nizu."""
    return niz[-2]

4. podnaloga

Napišite funkcijo daljsi(niz), ki vrne True, če je niz daljši od 5 znakov oziroma False, če je niz krajši ali enak od 5 znakov. Pomagajte si s kakšno metodo, ki jo lahko izvedemo na nizih.

>>> daljsi('niz')
False
>>> daljsi('102234443')
True

Uradna rešitev

def daljsi(niz):
    """Vrne True če je niz daljši od 5 znakov ali False sicer."""
    if len(niz) > 5:
        return True
    else:
        return False

5. podnaloga

Sestavite funkcijo sodi_obratno(niz), ki vrne obrnjen niz vseh znakov v danem nizu s sodimi indeksi (0 je sodi indeks). Na primer:

>>> sodi_obratno('01234567')
'6420'
>>> sodi_obratno('Lep sončen dan!')
'!a enspL'

Uradna rešitev

def sodi_obratno(niz):
    """vrne obrnjen niz vseh znakov v danem nizu s sodimi indeksi"""
    nov_niz = niz[::2]
    return nov_niz[::-1]
Mesto objave ob koncu projekta 15.9.2018