Uvod Definicija korisnike funkcije Upotreba funkcije Argumenti funkcije
§ Uvod § Definicija korisničke funkcije § Upotreba funkcije § Argumenti funkcije § Prostori imena i oblast definisanosti promenljivih § Privremene funkcije § Primeri programa
§ Korisničke funkcije su imenovane grupe naredbi koje izvršavaju određeni zadatak. § Funkcije omogućavaju: § Višestruku upotrebu dela programskog koda i time skraćenje dužine programa § Bolju organizaciju koda programa njegovom podelom na manje celine, koje je lakše razumeti § Imaju listu parametara koje koriste za izvršavanje određenog zadatka, npr abs(n) § Funkcije mogu, ali ne moraju, da kao rezultat vrate određenu vrednost § Programski kod se deli na manje celine da bi se dobio kvalitetan program, da bi se obiman kod podelio na manje i razumljivije celine
Def naziv. Funkcije (lista parametara): Blok narebi § Sastoji se iz zaglavlja, koje čine naziv funkcije i lista parametara i tela funkcije. § Promenljive u listi parametara koje preuzimaju vrednosti iz poziva funkcije su parametri, a same vrednosti koje se prenose funkciji prilikom njene upotrebe su argumenti funkcije § Izvršavanje funkcije završava se naredbom return, a rad programa se nastavalja od prve sledeće naredbe iza poziva funkcije
§ Funkcija može da vrati neku vrednost kao rezultat pomoću return vrednost, a može da vrati i više vrednosti (npr retrun a 1, a 2), a ne samo jednu. § Takođe, moguće je da ne vrati nikakvu vrednost, tj završava se samo naredbom return ili čak bez nje i tada se vraća posebna vrednost None
§ Funkcija koja vraća vrednost većeg od dva zadata broja: Poziv ove funkcije za neke vrednosti x i y je: veci=maksimum(x, y) !!! Definisanjem korisničke funkcije izbegava se ponavljanje sličnih delova koda i program postaje kraći i jasniji.
§ Umesto ponavljanja tri veoma slična bloka naredbi, napisati funkciju. § Traži se zbir brojeva u različitim granicama.
§ Prostor imena (namespace) je preslikavanje između naziva objekata i samih objekata, npr. promenljivih i funkcija. § U Python-u postoje ugrađeni (built-in) globalni i lokalni objekti § Prostori imena se mogu gnezditi, odnosno neki prostor imena se može uključiti u drugi prostor imena § Oblast definisanosti ili dostupnost (scope) promenljive je deo programa u kome je promenljiva definisana i može se koristiti
§ Lokalne promenljive nastaju i dostupne su samo u okviru funkcije u kojoj se koriste. Nakon završetka rada funkcije, više nisu dostupne. Promenljive se ponovo kreiraju prilikom svakog narednog izvršavanja funkcije. § Globalne promenljive su definisane u glavnom programu, imaju globalnu dostupnost i mogu se koristiti iz svake funkcije. Globalnu dostupnost imaju i igrađeni (built-in) objekti § Upotreba globalnih objekata često dovodi do greški, pa ih ne treba koristiti kada to nije zaista potrebno
§ Upotreba promenljivih istog naziva s različitim oblastima važenja prikazana je u sledećem primeru:
§ Anonimna funkcija nema naziv, jer se definiše i koristi samo u određenom kontekstu § Osnovna forma ovakve funkcije: lambda <lista_parametara> : <izraz> Funkcija kao rezultat vraća rezultat evaluacije izraza
§ NE mogu da sadrže naredbe grananja ni ponavljanja, osim uslovnih izraza
§ Računa se broj dana između dva datuma. § Broj dana između dva datuma računa se kao razlika broja dana od početka računanja za prvi (n 1) i drugi datum (n 2): n=n 2 -n 1
- Slides: 15