60 likes | 254 Views
Kdaj opisna, kdaj "knjižnica". Problem. Izpiši vsoto števk prebranega števila Za računanje vsote bomo napisali funkcijo Kje? Če bomo to funkcijo uporabili izključno pri tem problemu: Najprej definicija funkcije Nato stavki, kjer tudi kličemo to funkcijo. Vse v eni datoteki ( TestStevk.py ).
E N D
Problem • Izpiši vsoto števk prebranega števila • Za računanje vsote bomo napisali funkcijo • Kje? • Če bomo to funkcijo uporabili izključno pri tem problemu: • Najprej definicija funkcije • Nato stavki, kjer tudi kličemo to funkcijo
Vse v eni datoteki (TestStevk.py) defseštejŠtevke(n) : vs = 0 n = abs(n) while n > 0: enice = n % 10 vs = vs + enice n = n // 10 returnvs beri = input("Vnesi število: ") st = int(beri) # koliko je vsota števk tega števila vsŠtevk = seštejŠtevke(st) print(st, 'ima vsoto števk', vsŠtevk)
Drug problem • Generiraj naključno število med 10 in 1000 ter izračunaj vsoto števk tega števila • Poskus: • Spomnimo se, da imamo na datoteki TestStevk.py že funkcijo, ki zna računati vsoto števk. Torej • importrandom • importTestStevk • število = random.randint(100,1000) • vsota = TestStevk.seštejŠtevke(število) • print(število, 'ima vsoto števk', vsota) • A izvod se konča čudno • Ni ukazov za branje, a python hoče od nas število
Kako deluje import • Import dejansko izvede vse, kar piše na tisti datoteki • Poleg definicije funkcije tudi ukaze! • Zato: • Če bomo funkcijo uporabljali v več programih • Napišemo v datoteki, kjer so izključno definicije funkcij (in nič drugega)
Zaključek • Definicijo funkcij vedno napišemo na datoteki, ki vsebuje samo definicije funkcij • Seveda ista datoteka lahko vsebuje več definicij funkcij • Če pa neko funkcijo uporabimo izključno enkrat, jo lahko napišemo na začetku datoteke s programom, ki rešuje ta problem • Vendar jo potem praviloma ne moremo uporabiti v nobenem drugem programu!