Python


Seznami

Morda si že ugotovil, da Python razpozna stvari, ki spadajo v različne razrede podatkov (tipe podatkov). Doslej smo spoznali: Čas je, da spoznamo tretji tip, ki je zelo pripraven za združevanje podatkov v skupine. To je seznam (list)  podatkov Sezname pišemo z znakom  "[" na začetku in znakom  "]" na koncu, med posameznimi vrednostmi pa je vejica. Posamezne vrednosti so lahko poljubnega tipa. Na primer:

	[1, 2, 3]
["To", "je", 'primer', 'seznama']

Ali pa primeri z mešanimi podatki:
 
	["ena", 2, "deset", -23]
[2, "na", 8, "potenco je", 256]

Lahko vsebujejo tudi druge sezname:

	["seznami", ["so", "zabavni"]]
["gnezdenje", ["vec", ["seznamov", ["nas"], "lahko"], "zmede"], "."]

Imamo lahko celo prazne sezname:

	[]

Mimogrede, prazne sezname interpretiramo z logično vrednostjo false.

Morda se sprašuješ, kako bi take sezname uporabljal? Počakaj, najprej moramo vedeti, da lahko dostopamo do posameznih elementov seznama tako, da za imenom seznama uporabimo oglate oklepaje "[]"'. Na primer:

	a = ["to", "je", "uporabno"]
print a[0] # bi izpisalo to
print a[1] # bi izpisalo je
print a[2] # bi izpisalo uporabno
print a[3] # to pa bila napaka
a[1] = "ni" # Posamezne elemente lahko spreminjamo
print a # izpise ["to", "ni", "uporabno"]

Seznami so vedno oštevilčeni začenši z nič. Če bi seznam imel 7 elementov, bi zadnji imel številko 6.

Hmm, sprešuješ, kaj pomenijo znaki  #? S tem nakazujemo komentarje. Python ignorira vse, kar v dani vrstici sledi znaku  # (razen, če je # znotraj nekega niza). Komentarje pišemo zato, da razložimo, kaj naš program počne. Dobri programerji svoje programe vedno primerno komentirajo. 

Kako bi torej lahko uporabil naslednji seznam:

	SeznanNakupov=['mleko', "kruh", 'sir', 'salama', 0]
index=0 # index bo kazal na stvar v seznamu
# ki jo pravkar uporabljamo
while SeznamNakupov[index] != 0: # Ko pridemo do 0, smo opravili
print "Kupiti moras", SeznamNakupov[index], "!"
index=index+1 # korak na naslednjo stvar
print "To je vse."

V tem seznamu smo uporabili marker ("0"), da z njim označimo konec seznama. To seveda ni najbolj elegantno. Zato je čas, da spoznamo eno od pripravnih funkcij, vgrajenih v Pythonu. Dolžino seznama dobimo s funkcijo "len". Na primer:

	len(["a", "seznam"])	# vrne 2
velikSeznam = [1,2,3,4,5,6,7,8,9]
dolzina = len(velikSeznam) # zato bo dolzina = 9

Sedaj lahko neelegantni program polepšamo:

	SeznamNakupov=['mleko', "kruh", 'sir', 'salama']
index=0 # index bo kazal na stvar v seznamu
#
ki jo pravkar uporabljamo
 while index < len(SeznamNakupov):

print "Kupiti moraš", SeznamNakupov[index], "!"
index=index+1 # korak na naslednjo stvar
  print "To je vs

Seznam lahko tudi podaljšujemo z dodajanjem vrednosti. To storimo s funkcijo append:

	a=[1, 2, 3]
a.append(4)
print a # would bi izpisalo [1, 2, 3, 4]

Čas je za krajšo nalogo: Napiši program, ki računa Fibonaccijevo zaporedje. Začni s seznamom, ki vsebuje

	1, 1

Razširjaj seznam v skladu z definicijo Fibonaccijevega zaporedja:

	Fib[n] = Fib[n-1] + Fib[n-2]

Program naj vpraša uporabnika, koliko vrednosti naj izračuna. Nato pa uporabimo zanko  "while" za širjenje seznama, dokler ne dobimo dovolj vrednosti. Končno izpišimo rezultirajoči seznam.

Da bo bolj jasno, Fibonaccijevo zaporedje poteka tako:

	1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...