Programmeerijana avastate end sageli toimingut või ülesannet korduvalt sooritamas. See võib olla tüütu ja aeganõudev, eriti kui töötate suure või keerulise koodibaasiga. Nende funktsioonidega automatiseerimine on selliste ülesannete täitmisel tõhusam lähenemine. Funktsioonid võimaldavad kirjutada koodiloogika ühe korra ja kasutada seda kõikjal oma programmis.
Mis on Pythoni funktsioon?
Pythonis on funktsioon koodiplokk, mida kasutatakse konkreetse ülesande täitmiseks. Funktsiooni tuleb kirjutada ainult üks kord, kuid saate seda koodis mitu korda kasutada. Funktsioon võib võtta argumente sisend- ja tagastada väljundväärtustena. See lihtne programm näitab funktsiooni, mis arvutab kolme arvu summa:
# Pythoni funktsioon kolme numbri summa arvutamiseks
defarvuta_summa(a, b, c):
tagasi a+b+c
print (arvuta_summa(1,2,3)) # tagastab 6
print (arvuta_summa(1000, 300,44)) # tagastab 1344
print (arvuta_summa(12, 4,78)) # tagastab 94
Ülaltoodud programmis tagastab funktsioon kolme argumendi summa. Kui funktsiooni kutsutakse mitu korda, tagastab see iga juhtumi jaoks erineva väljundi. Kasulik rakendus selle funktsiooni jaoks on kalkulaatorirakendus.
Funktsiooni määratlemine Pythonis
Pythonil on palju sisseehitatud funktsioone arendajatele kasutamiseks saadaval. Kuid need sisseehitatud funktsioonid ei ole alati piisavad, et rahuldada enamiku projektide nõudmisi. Kohandatud nõudmiste täitmiseks peate määratlema oma kohandatud funktsioonid. Kohandatud funktsioonide määratlemine on programmeerimisel tavaline praktika.
Pythonis saate määrata kohandatud funktsiooni, kasutades def märksõnale järgneb teie funktsiooni nimi ja selle ees sulgud. Siin on näide:
deffunktsiooni_nimi()
Peaksite Pythonis funktsiooni nime määramisel arvestama järgmiste reeglitega:
- Funktsioonide nimed peavad olema väiketähtedega.
- Funktsioonide nimed peaksid olema kirjeldavad.
- Kasutage funktsiooni nimes sõnade eraldamiseks allkriipse.
Pärast funktsiooni määratlemist peate soovitud ülesande täitmiseks kirjutama loogika. Näiteks arvutab see funktsioon kolmnurga pindala:
# Pythoni funktsioon kolmnurga pindala arvutamiseks
defarvuta_kolmnurga_pindala(põhi, kõrgus):
pindala = (alus * kõrgus)/2
tagasi ala
print (arvuta_kolmnurga_ala(12, 3))
Ülaltoodud funktsioon määratleb kaks parameetrit: alus ja kõrgus, jagab nende korrutise kahega ja tagastab tulemuse väljundina. Saate kirjutada mis tahes loogikat, mida soovite, et teie funktsioon täidaks.
Funktsiooniargumentide mõistmine
Varasemates näidetes on funktsioonid võtnud toimingute tegemiseks argumente. Nende näidete argumendid on tuntud kui kohustuslikud või positsiooniargumendid. Pythonis võivad teie argumendid olla järgmised:
- Positsioonilised argumendid
- Märksõna argumendid
Positsioonilised argumendid
Positsioonilised argumendid tuleb edastada õiges määratluse järjekorras. Näiteks kui määratlete funktsiooni parameetritega a, bja c, peate nende parameetrite väärtused nende kutsumisel vastavalt edastama. Uurime eelmist näidet:
# Pythoni funktsioon kolme numbri summa arvutamiseks
defarvuta_summa(a, b, c):
tagasi a+b+c
print (arvuta_summa(1,2,3)) # tagastab 6
print (arvuta_summa(1000, 300,44)) # tagastab 1344
print (arvuta_summa(12, 4,78)) # tagastab 94
Ülaltoodud programmis on arvuta_summa() funktsioon võtab kolm argumenti, kui me seda kutsume. Iga argument tähistab vastavat parameetrit. Esimeses funktsioonikõnes numbrid 1, 2, ja 3 esindama a, b, ja c vastavalt.
Parameeter deklareeritakse funktsiooni definitsioonis, argument aga väärtus, mis edastatakse funktsiooni kutsumisel. See väärtus on sellele vastava parameetri esitus.
Positsioonilised argumendid on kohustuslikud. Kui te neid ei lisa, saate a Tüübiviga. Seda näitab järgmine näide:
defarvuta_summa(a, b, c):
tagasi a+b+c
print (arvuta_summa(1,2)) # tõstatab TypeError
Kui käivitate ülaltoodud programmi oma masinas, kuvatakse tõrketeade, mis sarnaneb alloleval pildil olevaga:
Märksõna argumendid
Märksõnaargumente ei pea tingimata edastama alati, kui funktsiooni kutsute. Need on valikulised argumendid ja ei pea järgima kindlat järjekorda. Python lubab meil kasutada *args ja **kwargs märksõna argumentide määramiseks.
Peale kasutamise *args ja **kwargs, on võimalik oma argumentidele määrata ka vaikeväärtused. Seda tehes ei kuvata viga, kui unustate funktsiooni kutsumisel väärtuse lisada. See näide annab illustratsiooni:
defarvuta_summa(a, b, c=3):
tagasi a+b+c
print (arvuta_summa(1,2)) # tagastab 6
Ülaltoodud programmis, millal arvuta_summa() kutsutakse, selle poolt pole argumenti c; see ei mõjuta programmi, sest c on juba vaikeväärtus. Saate määrata nii paljude argumentide jaoks vaikeväärtused, kui soovite, kuid tehke seda targalt.
Kasutage oma koodi korraldamiseks funktsioone
Funktsioonid on kasulikud koodi korraldamisel, muutes selle loetavamaks ja tõhusamaks. Funktsioonide abil saate oma koodi jagada väiksemateks korduvkasutatavateks tükkideks, mida on lihtsam mõista ja hooldada. Lisaks, kui peate oma koodi muutma, peate muutma ainult vajalikku funktsiooni, mitte kogu koodibaasi.