Funkcije
Do sada smo sav naš kod pisali u app.py, ali kako naši programi rastu, potreban nam je bolji način organiziranja našeg koda. Moramo razbiti naš kod na manje dijelove kojima se lakše upravlja i koje je lakše održavati, a koje nazivamo funkcijama. Funkcija je spremnik za nekoliko redaka koda koji obavljaju određeni zadatak.
Na primjer, već ste naučili o nekoliko ugrađenih funkcija u Pythonu print()
i input()
. Svaka funkcija ima svrhu i zna kako izvršiti određeni zadatak. Dakle, kada gradimo velike složene programe, trebali bismo rastaviti naš kod na manje dijelove koji se mogu ponovno koristiti, tj. funkcije.
Razumimo ovaj koncept izgradnjom programa za ispis pozdravne poruke.
print('Hi there!')
print('Welcome aboard!')
Ovdje imamo jednostavan program sa samo dvije linije koda. Sad, recimo, trebat ćemo ih u drugim programima kako bismo ih stavili u funkciju koju možemo ponovno koristiti.
Dopustite mi da predstavim rezerviranu ključnu riječ def
u Pythonu, što je skraćenica za definiranje i koristi se za definiranje funkcije.
def greet_user():
print('Hi there!')
print('Welcome aboard!')
Sada će ovaj blok koda definirati funkciju "greet_user
” s redcima kodova nakon toga. Kad god se ova funkcija pozove, ove dvije linije će se izvršiti. Iskoristimo ovo:
print('start')
greet_user()
print('finish')
Program se izvršava sekvencijalno, što znači da biste morali definirati funkciju prije nego što je pozovete u programu.
Parametri
Definirane funkcije rade malo drugačije od ugrađenih funkcija Pythona. Na primjer, u slučaju print()
funkcija, uzima neke informacije koje želimo ispisati, ali naša funkcija pozdrava ne uzima nikakve informacije. Ne bi li bilo ljepše da ovdje možete proslijediti ime korisnika i onda, umjesto da kažete "bok", možete ispisati ime korisnika?
To možete učiniti dodavanjem parametara unutar zagrada definirane funkcije. Da ti pokažem:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
Sada "name
” unutar zagrade djelovat će kao lokalna varijabla i možemo proslijediti ime korisnika kada je pozivamo.
greet_user('Shahbaz')
Sada je parametar imena postavljen na "Shahbaz
”. Promijenimo program da ga iskoristimo.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
Važna stvar koju treba imati na umu je da se "ime" u prvom retku naziva parametrom, dok se navedeno ime, tj. Shahbaz, naziva argumentom.
Idemo naprijed i pokrenimo ovaj program.
Dakle, s ovim parametrima možemo primati informacije u našim funkcijama.
Sada, učinimo nešto zanimljivo. Recimo da želite dodati još jedno ime u pozdravnu poruku. Jednostavno je.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
Imajte na umu da kada funkcija ima parametar, dužni smo proslijediti vrijednost za taj parametar. Ako uklonite naziv iz funkcije i pokrenete program, dobit ćemo pogrešku. Također možete koristiti više parametara u jednoj funkciji, odvojenih zarezom.
Na primjer, greet_user(first_name, last_name):
. Argumenti će također biti oblikovani na sličan način.
Argumenti ključnih riječi
Do sada smo naučili da kad god definiramo parametre za naše funkcije, uvijek trebamo dati vrijednosti inače ćemo dobiti pogrešku. U prošlom programu, argumenti 'Shahbaz'
i 'Bhatti'
nazivaju se pozicijskim argumentima, što znači da je njihov položaj ili redoslijed bitan u programu.
U Pythonu imamo drugu vrstu argumenata koji se nazivaju argumenti ključne riječi, za koje položaj nije bitan. Dopustite da vam pokažem kako rade.
Pogledajte zadnji program. Možemo ga modificirati ovako:
def greet_user(first_name, last_name):
print(f'Hi {first_name} {last_name}')
print('Welcome aboard!')
print('start')
greet_user(first_name='Shahbaz', last_name='Bhatti')
print('finish')
Sada je first_name
i last_name
su parametri ključne riječi. Možete im zamijeniti mjesta i rezultat će biti isti.
To ne znači da uvijek trebamo koristiti argumente ključnih riječi. Većinu vremena koristimo pozicijske argumente, ali u određenim situacijama ti nam argumenti ključnih riječi pomažu poboljšati čitljivost našeg koda.
Postoji još jedna stvar koju trebate znati o argumentima ključnih riječi. Argumenti ključne riječi uvijek bi trebali doći nakon pozicijskih argumenata.
Izjava o povratu
Do sada smo naučili kako kreirati funkcije i slati im informacije pomoću njihovih parametara. Sada naučimo kako stvoriti funkcije koje vraćaju vrijednosti. Ovo je osobito korisno ako radite neku vrstu izračuna i želite vratiti rezultat onome tko koristi vašu funkciju. Da ti pokažem.
Definirajmo funkciju koja će izračunati kvadrat broja.
def square(number):
return number*number
Koristili smo naredbu return za vraćanje ovog broja izvan funkcije. Sada, ako pozovemo ovu funkciju, ona vraća vrijednost kao što je input()
funkcija. Isprintajmo ga na terminalu.
Možete tvrditi da se isti rezultat može dobiti bez korištenja naredbe return. Idemo to provjeriti.
Vidimo dvije stvari, broj 9 i nijednu. Što se ovdje događa?
Kada Python tumač izvrši ovaj kod, prvo će pozvati kvadratnu funkciju i kontrola se pomiče na funkciju. Ovdje izračunavamo kvadrat tog zadanog broja i zatim ga ispisujemo na terminalu.
Sada, prema zadanim postavkama, sve funkcije vraćaju vrijednost none. Dakle, ako ovdje nemamo povratnu izjavu, Python prema zadanim postavkama ne vraća ništa. None je objekt koji predstavlja odsutnost vrijednosti. To je kao ništa ili null u C, C++, Javi i Javascriptu.
Zamotati!
Nadam se da ste shvatili važnost funkcija.
Oni su značajan aspekt učenja Pythona ako planirate pisati velike i složene programe tijekom svoje karijere kodiranja.
Ostavi odgovor