Kas ir funkcija Python?
Funkcija Python ir gabals kodu, kas darbojas, kad tas ir atsauces. To izmanto koda izmantošanai vairāk nekā vienā programmas vietā. To sauc arī par metodi vai procedūru. Python nodrošina daudzas iebūvētas funkcijas, piemēram, print (), input (), compile (), exec () utt., Taču tas dod arī brīvību izveidot savas funkcijas.
Šajā apmācībā mēs iemācīsimies
- Kā definēt un izsaukt funkciju Python
- Ievilkuma (telpas) nozīme Python
- Kā funkcija atgriež vērtību?
- Funkciju argumenti
Kā definēt un izsaukt funkciju Python
Funkciju Python definē "def" priekšraksts, kam seko funkcijas nosaukums un iekavas (())
Piemērs:
Definēsim funkciju, izmantojot komandu "def func1 ():", un izsauksim funkciju. Funkcijas izeja būs "Es mācos Python funkciju".
Funkcija print func1 () izsauc mūsu def func1 (): un izdrukā komandu " Es mācos Python funkciju None ".
Lai definētu funkciju, Python ir noteikumu kopums.
- Jebkuri argumenti vai ievades parametri jānovieto šajās iekavās
- Funkcijas pirmais paziņojums var būt izvēles priekšraksts - docstring vai funkcijas dokumentācijas virkne
- Katras funkcijas kods sākas ar kolu (:) un ar atkāpi (atstarpe)
- Izraksts return (izteiksme) iziet no funkcijas, pēc izvēles nododot vērtību zvanītājam. Atgriešanās paziņojums bez argumentiem ir tāds pats kā atgriešanās Nav.
Ievilkuma (telpas) nozīme Python
Pirms mēs iepazināmies ar Python funkcijām, ir svarīgi saprast, vai atkāpšanās kārtula deklarē Python funkcijas, un šie noteikumi ir piemērojami citiem Python elementiem, piemēram, nosacījumu, cilpu vai mainīgo deklarēšanai.
Lai definētu kodu, Python ievēro noteiktu ievilkuma stilu, jo Python funkcijām nav skaidra sākuma vai beigu, piemēram, cirtainās iekavas, lai norādītu funkcijas sākumu un beigas, tām ir jāpaļaujas uz šo atkāpi . Šeit mēs ņemam vienkāršu piemēru ar komandu "print". Kad mēs rakstām "print" funkciju tieši zem def func 1 (): tā parādīs " ievilkuma kļūda: gaidāms ievilkts bloks ".
Tagad, pievienojot atkāpi (atstarpi) funkcijas "drukāt" priekšā, tai vajadzētu drukāt, kā paredzēts.
Lai kods veiksmīgi darbotos, pietiek ar vienu ievilkumu. Bet kā labāko praksi ieteicams atstāt apmēram 3-4 atkāpi, lai izsauktu savu funkciju .
Tāpat ir nepieciešams, lai, deklarējot atkāpi, jums ir jāsaglabā tas pats ievilkums arī pārējam kodam . Piemēram, zemāk redzamajā ekrānuzņēmumā, kad mēs izsaucam citu paziņojumu "joprojām ir func1" un kad tas nav deklarēts tieši zem pirmā izdrukas paziņojuma, tajā tiks parādīta atkāpes kļūda "unindent neatbilst jebkuram citam atkāpes līmenim".
Tagad, kad abiem apgalvojumiem piemērojam vienu un to pašu atkāpi un izlīdzinām tos vienā rindā, tas dod gaidīto rezultātu.
Kā funkcija atgriež vērtību?
Komanda Return Python norāda, kādu vērtību atdot funkcijas izsaucējam.
Sapratīsim to ar šādu piemēru
1. solis) Šeit - mēs redzam, kad funkcija nav "atgriešanās". Piemēram, mēs vēlamies kvadrātu 4, un tam jānorāda atbilde "16", kad kods tiek izpildīts. Ko tas dod, kad mēs vienkārši izmantojam kodu "print x * x", bet, izsaucot funkciju "print square", kā izvadi tiek parādīts nosaukums "None". Tas ir tāpēc, ka, izsaucot funkciju, rekursija nenotiek un nokrīt no funkcijas beigām. Python atgriež vērtību “None”, jo tas neizdodas funkcijas beigās.
2. solis. Lai padarītu to skaidrāku, drukas komandu aizstājam ar komandu Assignment. Pārbaudīsim izvadi.
Palaižot komandu "print square (4)", tā faktiski atgriež objekta vērtību, jo mums šeit nav nevienas īpašas funkcijas, lai to palaistu, tā atgriež "None".
3. solis. Tagad mēs redzēsim, kā iegūt izvadi, izmantojot komandu "return". Kad izmantojat funkciju "atgriešanās" un izpildāt kodu, tas dos izvadi "16."
4. solis. Funkcijas Python pašas par sevi ir objekts, un objektam ir zināma vērtība. Mēs šeit redzēsim, kā Python izturas pret objektu. Palaižot komandu "print square", tā atgriež objekta vērtību. Tā kā mēs neesam izturējis nevienu argumentu, mums nav īpašas funkcijas, lai šeit palaistu, tā atgriež noklusējuma vērtību (0x021B2D30), kas ir objekta atrašanās vieta. Praktiskajā Python programmā, iespējams, jums tas nekad nebūs jādara.
Funkciju argumenti
Arguments ir vērtība, kas tiek nodota funkcijai, kad tā tiek izsaukta.
Citiem vārdiem sakot, izsaucēja pusē tas ir arguments, bet funkcijas pusē - parametrs.
Ļaujiet redzēt, kā darbojas Python Args -
1. solis. Argumenti tiek deklarēti funkcijas definīcijā. Izsaucot funkciju, varat nodot argumentu vērtības, kā parādīts zemāk
2. solis. Lai deklarētu argumenta noklusējuma vērtību, piešķiriet tai vērtību funkcijas definīcijā.
Piemērs: x nav noklusējuma vērtību. Noklusējuma vērtības y = 0. Kad reizināšanas funkcijas izsaukšanas laikā mēs piegādājam tikai vienu argumentu, Python piešķir piegādāto vērtību x, saglabājot y = 0 vērtību. Tādējādi reizinājums x * y = 0
3. solis. Šoreiz vērtību mainīsim uz y = 2, nevis noklusējuma vērtību y = 0, un tā atgriezīs izvadi kā (4x2) = 8.
4. solis. Varat arī mainīt secību, kādā argumentus var nodot Python. Šeit mēs esam mainījuši vērtību x un y secību uz x = 4 un y = 2.
5. solis. Vairākus argumentus var nodot arī kā masīvu. Šeit piemērā mēs saucam vairākus argus (1,2,3,4,5), izsaucot funkciju (* args).
Piemērs: Mēs paziņojām vairākus argus kā skaitli (1,2,3,4,5), kad izsaucam funkciju (* args); tas izdrukā izvadi kā (1,2,3,4,5)
Padomi :
- Programmā Python 2.7. funkciju pārslodze Python netiek atbalstīta. Funkcijas Pārslodze ir spēja izveidot vairākas viena nosaukuma metodes ar atšķirīgu ieviešanu. Python 3 pilnībā atbalsta funkciju pārslodzi
- Starp metodēm un funkcijām ir diezgan neskaidrības. Metodes Python ir saistītas ar objektu gadījumiem, bet funkcija nav. Kad Python izsauc metodi, tas sasaista šī zvana pirmo parametru ar atbilstošo objekta atsauci. Vienkārši sakot, atsevišķa funkcija Python ir "funkcija", savukārt funkcija, kas ir klases vai instances atribūts, ir "metode".
Šeit ir pilns Python 3 kods
#define a functiondef func1():print ("I am learning Python function")print ("still in func1")func1()def square(x):return x*xprint(square(4))def multiply(x,y=0):print("value of x=",x)print("value of y=",y)return x*yprint(multiply(y=2,x=4))
Šeit ir pilns Python 2 kods
#define a functiondef func1():print " I am learning Python function"print " still in func1"func1()def square(x):return x*xprint square(4)def multiply(x,y=0):print"value of x=",xprint"value of y=",yreturn x*yprint multiply(y=2,x=4)
Kopsavilkums:
Funkcija Python ir atkārtoti izmantojama koda daļa, ko izmanto, lai veiktu vienu, saistītu darbību. Šajā rakstā mēs to redzēsim
- Funkcija, ko nosaka def paziņojums
- Katras funkcijas koda bloks sākas ar kolu (:) un ar atkāpi (atstarpe)
- Visi argumenti vai ievades parametri jāievieto šajās iekavās utt.
- Pēc funkcijas deklarēšanas pirms koda jāatstāj vismaz viens ievilkums
- Vienāds ievilkuma stils ir jāsaglabā visā kodā def funkcijas ietvaros
- Par paraugpraksi trīs vai četri ievilkumi tiek uzskatīti par labākajiem pirms paziņojuma
- Varat izmantot komandu "atgriezties", lai atgrieztu vērtības funkcijas izsaukumam.
- Python izdrukās nejaušu vērtību, piemēram, (0x021B2D30), kad arguments netiek piegādāts izsaukšanas funkcijai. Piemērs "drukas funkcija".
- Zvana pusē tas ir arguments, bet funkcijas pusē - parametrs
- Noklusējuma vērtība argumentā - kad mēs piegādājam tikai vienu argumentu, vienlaikus izsaucot reizināšanas funkciju vai jebkuru citu funkciju, Python pēc noklusējuma piešķir otru argumentu
- Python ļauj mainīt arī argumentu secību