1 / 24

Python

Python. Funkcije. Vgrajene funkcije. Kaj je funkcija? Nek "kos" programske kode, ki nekaj dela! Doslej Vgrajene funkcije: print , input , random.random , float , int , math.sqrt , … Opravijo neko delo in Vrnejo rezultat math.sqrt , random.random , input , int …

steffi
Download Presentation

Python

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Python Funkcije

  2. Vgrajene funkcije • Kaj je funkcija? • Nek "kos" programske kode, ki nekaj dela! • Doslej • Vgrajene funkcije: print, input, random.random, float, int, math.sqrt, … • Opravijo neko delo in • Vrnejo rezultat • math.sqrt, random.random, input , int… • imajo le učinek • print

  3. Kaj se zgodi, ko "pokličemo" funkcijo • Definicija funkcije vsebuje neko zaporedje stavkov • Ko jo pokličemo (navedemo njeno ime), se začno ti stavki, ki jih je avtor funkcije napisal, izvajati • Ko pridemo do konca (ko se izvede zadnji stavek), se "vrnemo" tja, kjer smo funkcijo poklicali • x = 2 + math.sqrt(14) + 3 – math.sqrt(2) • Če jo pokličemo drugič, se spet začno izvajati ti stavki

  4. "podatki" za funkcije • Imenujemo jih parametri • Vrednosti izrazov, ki jih navedemo ob klicu • Povemo, s čim naj funkcija začne računati, kakšna je določena začetna vrednost spremenljivk "znotraj" v funkciji zapisanega postopka • math.sqrt(12.5) • Povemo, da želimo izračunati koren števila 12.5 • Funkcije imajo lahko • En parameter • int(7 + 6.7) • Več parametrov • max(12, x, 1 + 5, 66, 12) • Ali pa so brez • random.random()

  5. Primer def vsotaStevil(a, b): vsota = a + b return vsota Shranimo: MojeFun.py • Uporaba importMojeFun prvoStevilo = int(input('Prvi podatek: ')) • drugoStevilo = int(input(Drugipodatek: ')) • rez = MojeFun.vsotaStevil(prvoStevilo, drugoStevilo) • print(rez)

  6. Kako ustvarimo svojo funkcijo • Glava • Rezervirane beseda def • sledi ime funkcije • ime naj bo takšno, da lahko iz njega sklepamo, kaj funkcija počne • ( • Obvezno, tudi če ni parametrov! • imena parametrov • Če je parametrov več, jih ločimo s vejicami. • ) : • Telo • stavki, ki se bodo izvršili vsakič, ko bomo funkcijo poklicali. • zamik stavkov obvezen • enak

  7. Konec funkcije • Ko se izvede zadnji stavek v telesu • Ali ko se izvede ukaz return

  8. return • return izraz • Funkcijakotsvojrezultatvrnevrednostizraza • Običajno je to zadnjistavek v funkciji • Ni pa nujno (pogojnistavki) • V telesu je lahkovečukazov return • Čeimafunkcija le učinek • Ukaza return ni

  9. Zgled • Sestavimo funkcijo, ki iz trimestnega naravnega število naredi novo število tako, da prvotnemu "obrne" vrstni red števk • Iz 124 dobimo 421 • Iz 793 dobimo 397 • Iz 112 dobimo 211 • Ideja 0: • Število razbijemo na enice, desetice in stotice • Izpišemo najprej enice, nato desetice in potem stotice

  10. Funkcija Opisni komentar, izpiše se s help(VseTrimestno.obrniTrimestno) def obrniTrimestno(n): ''' Funkcijaobrnetrimestnonaravnoštevilo Predpostavljamo, da je podano res trimestno število ''' enice = n % 10 desetice = n // 10 % 10 stotice = n // 100 print('Iz ', n, ' smonaredili ', / enice, desetice, stotice, sep = '') Shranimo na VseTrimestno.py nadaljevanje vrstice

  11. Testna opisna datoteka (skripta) # Testnookoljezaobračanjetromestnihštevil import VseTrimestno # tu so ustreznefunkcije prvo = 234 VseTrimestno.obrniTrimestno(prvo) TestTromestno.py

  12. Razlika med opisno datoteko in datoteko z definicijo funkcije • Opisna datoteka (skripta) • Vsebuje ukaze, kot bi jih tipkali neposredno v ukazno lupino • Ukazi se izvajajo drug za drugim, kot so napisani • Z uporabo F5 izvedemo vse ukaze, ki so na opisni datoteki • Definicija funkcije • Vsebuje opis, kako deluje funkcija • Ukazi se bodo izvedli šele, ko funkcijo pokličemo • Če uporabimo F5, se bo ukazna lupina le "naučila" te definicije • Drugega se ne izvede nič • Lahko pa sedaj to funkcijo kličemo v ukazni lupini • Navedemo le njeno ime • ni potrebno • importimeDatoteke • imeDatoteke.imeFunkcije

  13. Ideja 1 • Zakaj ideja 0 ni prav? • Saj dobimo izpis • Iz 234 smo naredili 432 • Hočemo novo število in ne le "pravi izpis" • Nova ideja: • Število razbijemo na enice, desetice in stotice • Enice množimo s 100, desetice z 10 in stotice z 1 ter seštejemo

  14. Funkcija po ideji 1 def obrniTrimestno1(n): ''' Funkcijaobrnetrimestnonaravnoštevilo Predpostavljamo, da je podano res trimestnoštevilo ''' enice = n % 10 desetice = n // 10 % 10 stotice = n // 100 novoŠtevilo = enice * 100 + desetice * 10 + stotice print('Iz ', n, ' smonaredili ', novoŠtevilo)

  15. Ampak še vedno ni čisto v redu • Zakaj? • Denimo, da želimo izračunati razliko med prvotnim in obrnjenim številom. • Si lahko pomagamo z našo funkcijo? • Ne, saj ne dobimo rezultata • Le učinek (izpis) • Na konec dodamo • returnnovoŠtevilo

  16. Različica 2 def obrniTrimestno2(n): ''' Funkcijavrneobrnjenotrimestnonaravnoštevilo Predpostavljamo, da je podano res trimestnoštevilo ''' enice = n % 10 desetice = n // 10 % 10 stotice = n // 100 novoŠtevilo = enice * 100 + desetice * 10 + stotice print('Iz ', n, ' smonaredili ', novoŠtevilo) return novoStevilo

  17. Ampak … • Po nepotrebnem "packamo" po zaslonu • Kdo pravi, da želimo obrnjeno število izpisati • Pravilo: • V funkciji ne izpisujemo nič • Razen seveda, če hočemo početi le to! • Tisti, ki funkcijo pokliče, se odloči, kaj bo naredil z rezultatom • Izpisal, uporabil pri nadaljnjem računanju, oboje …

  18. Zato … def obrniTrimestno3(n): ''' Funkcijavrneobrnjenotrimestnonaravnoštevilo Predpostavljamo, da je podano res trimestnoštevilo ''' enice = n % 10 desetice = n // 10 % 10 stotice = n // 100 novoŠtevilo = enice * 100 + desetice * 10 + stotice return novoŠtevilo

  19. Ideja 2 • Število razbijemo na enice, desetice in stotice • Števila pretvorimo v nize • Ustrezno "zlepimo" skupaj nize • In niza naredimo spet število

  20. Koda def obrniTrimestno4(n): ''' Funkcijavrneobrnjenotrimestnonaravnoštevilo Predpostavljamo, da je podano res trimestnoštevilo ''' enice = n % 10 desetice = n // 10 % 10 stotice = n // 100 # sestavimo novo število novoNiz = str(enice) + str(desetice) + str(stotice) # zlepimoštevke novoŠtevilo = int(novoNiz) # naredimoiztegaspetštevilo return novoŠtevilo

  21. Funcija kliče funkcijo • Vsaka "naša" funkcija se obnaša kot vgrajena • Zato jo lahko kličemo tudi pri drugih naših funkcijah • Če je definirana v isti datoteki • imeFunkcije • Če je definirana v drugi datoteki • Najprej: importimeDatoteke • Klic: imeDatoteke.imeFunkcije

  22. Zgled • Sestavimo funkcijo, ki izpiše razliko med številom in obrnjenim tem številom

  23. Koda def razlikaZObratom(število): ''' izpišemorazliko med številomstevilo in obrnjenimštevilom ''' obŠtevilo = obrniTrimestno4(število) razlika = število - obŠtevilo print('Razlika med', število, 'in njegovimoobratom je', razlika)

  24. Zgled • Za dano trimestno število ugotovi, ali je "palindrom" • Torej, ali se naprej prebere enako kot nazaj • Sestavimo funkcijo, ki izpiše • 212 je palindrom • oziroma • 231 ni palindrom • Ideja: • Izračunamo razliko • Če je … • Težave … • Eni stavki, če je razlika 0 in drugi, če drugače!

More Related