Funkcijas
Līdz šim mēs visu kodu esam rakstījuši vietnē app.py, taču, mūsu programmām augot, mums ir nepieciešams labāks veids, kā sakārtot kodu. Mums ir jāsadala mūsu kods mazākos, vieglāk pārvaldāmos un labāk uzturējamos gabalos, kurus mēs saucam par funkcijām. Funkcija ir konteiners dažām koda rindiņām, kas veic noteiktu uzdevumu.
Piemēram, jūs jau esat uzzinājis par dažām Python iebūvētajām funkcijām print()
un input()
. Katrai funkcijai ir savs mērķis, un tā zina, kā veikt konkrētu uzdevumu. Tāpēc, veidojot lielas sarežģītas programmas, mums vajadzētu sadalīt savu kodu mazākos atkārtoti lietojamos gabalos, ti, funkcijās.
Ļaujiet mums saprast šo jēdzienu, izveidojot programmu apsveikuma ziņojuma drukāšanai.
print('Hi there!')
print('Welcome aboard!')
Šeit mums ir vienkārša programma, kurā ir tikai divas koda rindas. Tagad, pieņemsim, mums tie būs nepieciešami citās programmās, lai tos ievietotu funkcijā, ko varam izmantot atkārtoti.
Ļaujiet man iepazīstināt ar rezervētu atslēgvārdu def
Python, kas ir saīsinājums no define un tiek izmantots funkcijas definēšanai.
def greet_user():
print('Hi there!')
print('Welcome aboard!')
Tagad šis koda bloks definēs funkciju "greet_user
” ar kodu rindām pēc tam. Ikreiz, kad tiek izsaukta šī funkcija, tiks izpildītas šīs divas rindas. Izmantosim šo:
print('start')
greet_user()
print('finish')
Programma tiek izpildīta secīgi, kas nozīmē, ka pirms tās izsaukšanas programmā ir jādefinē funkcija.
parametri
Definētās funkcijas darbojas nedaudz savādāk nekā Python iebūvētās funkcijas. Piemēram, gadījumā print()
funkcija, tai ir nepieciešama daļa informācijas, ko vēlamies izdrukāt, bet mūsu sveiciena funkcija neuzņem nekādu informāciju. Vai nebūtu patīkamāk, ja jūs varētu šeit ievadīt lietotāja vārdu un pēc tam tā vietā, lai teiktu "čau", izdrukātu lietotāja vārdu?
To var izdarīt, pievienojot parametrus definētās funkcijas iekavās. Ļaujiet man jums parādīt:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
Tagad “name
” iekavās darbosies kā lokāls mainīgais, un mēs varam nodot lietotāja vārdu, to izsaucot.
greet_user('Shahbaz')
Tagad nosaukuma parametrs ir iestatīts uz "Shahbaz
”. Mainīsim programmu, lai to izmantotu.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
Svarīgi atzīmēt, ka "nosaukums" pirmajā rindā tiek saukts par parametru, savukārt norādītais nosaukums, piemēram, Shahbaz, tiek saukts par argumentu.
Dosimies uz priekšu un palaidīsim šo programmu.
Tātad ar šiem parametriem mēs varam saņemt informāciju savās funkcijās.
Tagad darīsim kaut ko interesantu. Pieņemsim, ka vēlaties sveicienam pievienot citu vārdu. Tas ir vienkārši.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
Tagad ņemiet vērā, ka, ja funkcijai ir parametrs, mums ir jānodod šī parametra vērtība. Ja noņemsit funkcijas nosaukumu un palaižat programmu, tiks parādīts kļūdas ziņojums. Varat arī izmantot vairākus parametrus vienā funkcijā, atdalot tos ar komatu.
Piemēram, greet_user(first_name, last_name):
. Argumenti arī tiks formatēti līdzīgi.
Atslēgvārdu argumenti
Līdz šim mēs esam iemācījušies, ka ikreiz, kad mēs definējam mūsu funkciju parametrus, mums vienmēr ir jāiesniedz vērtības, pretējā gadījumā mēs saņemsim kļūdu. Pēdējā programmā argumenti 'Shahbaz'
un 'Bhatti'
tiek saukti par pozicionāliem argumentiem, kas nozīmē to atrašanās vietu vai secību programmā.
Programmā Python mums ir cita veida arguments, ko sauc par atslēgvārdu argumentiem, kuriem pozīcijai nav nozīmes. Ļaujiet man parādīt, kā viņi strādā.
Paskaties uz pēdējo programmu. Mēs to varam modificēt šādi:
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')
Tagad first_name
un last_name
ir atslēgvārdu parametri. Var samainīt viņu vietas un rezultāts būs tāds pats.
Tagad tas nenozīmē, ka mums vienmēr vajadzētu izmantot atslēgvārdu argumentus. Lielāko daļu laika mēs izmantojam pozicionālos argumentus, taču noteiktās situācijās šie atslēgvārdu argumenti palīdz mums uzlabot mūsu koda lasāmību.
Ir vēl viena lieta, kas jums jāzina par atslēgvārdu argumentiem. Atslēgvārdu argumentiem vienmēr jābūt aiz pozicionālajiem argumentiem.
Atgriešanas paziņojums
Līdz šim esam iemācījušies izveidot funkcijas un nosūtīt tām informāciju, izmantojot to parametrus. Tagad uzzināsim, kā izveidot funkcijas, kas atgriež vērtības. Tas ir īpaši noderīgi, ja veicat aprēķinus un vēlaties atgriezt rezultātu tiem, kas izmanto jūsu funkciju. Ļaujiet man jums parādīt.
Definēsim funkciju, kas aprēķinās skaitļa kvadrātu.
def square(number):
return number*number
Mēs esam izmantojuši atgriešanas paziņojumu, lai atgrieztu šo numuru ārpus funkcijas. Tagad, ja mēs izsaucam šo funkciju, tā atgriež vērtību tāpat kā input()
funkciju. Izdrukāsim to terminālī.
Varat apgalvot, ka tādu pašu rezultātu var iegūt, neizmantojot atgriešanas paziņojumu. Pārbaudīsim to.
Mēs redzam divas lietas, skaitli 9, un nevienu. Kas te notiek?
Kad Python tulks izpilda šo kodu, vispirms tas izsauks kvadrātveida funkciju un vadīkla pāriet uz funkciju. Šeit mēs aprēķinām šī dotā skaitļa kvadrātu un pēc tam izdrukājam to terminālī.
Tagad pēc noklusējuma visas funkcijas atgriež vērtību nav. Tātad, ja mums šeit nav atgriešanas priekšraksta, Python pēc noklusējuma to neatgriež. Neviens nav objekts, kas atspoguļo vērtības neesamību. Tas ir kā nekas vai nulle C, C++, Java un Javascript.
Satīt!
Es ceru, ka esat sapratis funkciju nozīmi.
Tie ir nozīmīgs Python mācīšanās aspekts, ja plānojat rakstīt lielas un sarežģītas programmas savas kodēšanas karjeras laikā.
Atstāj atbildi