Kuidas funktsiooni sisse kutsuda Python (Näide)

⚡ Nutikas kokkuvõte

Funktsioonid sees Python on korduvkasutatavad koodiplokid, mis käivitatakse kutsumisel ja on defineeritud def-lausega. Need aktsepteerivad argumente, tagastavad väärtusi ja tuginevad iga funktsiooni kuuluvate lausete rühmitamiseks järjepidevale taandele.

  • 🧩 def-lause: Funktsioon defineeritakse def, nime ja sulgudega, millele järgneb koolon, mis avab taandatud lauseploki.
  • 📞 Kutsumisfunktsioonid: Funktsiooni nime ja sellele järgnevate sulgude kirjutamine käivitab selle koodi, seega saab sama loogikat mitu korda uuesti kasutada.
  • ⌨️ Treppimine: Python grupeerib funktsiooni sisu järjepideva taande, mitte sulgude abil, seega puudub tühik, mis tekitab IndentationError vea.
  • 🎯 Argumendid: Sulgudes edastatud väärtused muutuvad parameetriteks ning vaikeväärtused või märksõnaargumendid muudavad iga kutse paindlikuks.
  • ↩️ Tagastusväärtused: Tagastuslause annab tulemuse helistajale tagasi; ilma selleta tagastab funktsioon väärtuse None.
  • 🤖 AI abi: Tehisintellekti assistendid, näiteks GitHub Copilot, genereerivad lühikese viiba abil funktsioonide skelette, argumente ja dokumente.

Kuidas funktsiooni sisse kutsuda Python

Mis on funktsioon Python?

A Funktsioon sisse Python on koodilõik, mis käivitub viitamisel. Seda kasutatakse koodi kasutamiseks programmis rohkem kui ühes kohas. Seda nimetatakse ka meetodiks või protseduuriks. Python pakub palju sisseehitatud funktsioone nagu print(), input(), compile() ja exec(), aga annab ka vabaduse luua oma funktsioone.

Kuidas funktsiooni defineerida ja sisse kutsuda Python

Funktsioon sees Python on defineeritud lausega „def“, millele järgnevad funktsiooni nimi ja sulud ( () ).

Näide:

Defineerime funktsiooni käsuga „def func1():” ja kutsume funktsiooni välja. Funktsiooni väljund on „Ma õpin Python funktsioon ”.

Funktsiooni määratlemine ja sisse kutsumine Python

Funktsioonikutse func1() käivitab meie def func1(): ja kuvab käsu „Ma õpin Python funktsioon Puudub.”

Seal on reeglistik Python programmeerimine funktsiooni määratlemiseks.

  • Kõik argumendid või sisendparameetrid tuleks paigutada nendesse sulgudesse.
  • Funktsiooni esimene lause võib olla valikuline lause — funktsiooni dokumentatsioonistring.
  • Iga funktsiooni kood algab kooloniga (:) ja peaks olema taandatud (tühikuga).
  • Lause return (avaldis) väljub funktsioonist, valikuliselt edastades kutsujale väärtuse. Argumentideta return-lause on sama mis return None.

Treppimise (ruumi) tähendus in Python

Enne kui me tutvume Python funktsioonide puhul on oluline, et mõistaksime deklareeritava taande reeglit Python funktsioone ja need reeglid kehtivad ka teistele elementidele Python samuti, näiteks tingimuste, tsüklite või muutujate deklareerimine.

Python järgib koodi määratlemiseks kindlat taande stiili. Kuna Python Funktsioonidel pole selget algust ega lõppu, näiteks looksulgusid, mis tähistaksid funktsiooni algust ja lõppu, vaid nad peavad tuginema taandele. Siin toome lihtsa näite käsuga „print“. Kui kirjutame funktsiooni „print“ otse def func1(): rea alla, kuvatakse teade „taandeviga: oodatakse taandatud plokki“.

Funktsiooni määratlemine ja sisse kutsumine Python

Nüüd, kui lisate funktsiooni „print” ette taande (tühiku), peaks see ootuspäraselt välja printima.

Funktsiooni määratlemine ja sisse kutsumine Python

Koodi edukaks toimimiseks piisab vähemalt ühest taandest. Parima tava kohaselt on aga soovitatav jätta funktsiooni kutsumiseks umbes 3–4 taandet.

Samuti on vajalik, et taande deklareerimisel säilitaksite sama taande kogu ülejäänud koodis. Näiteks alloleval ekraanipildil, kui kutsume välja teise lause „still in func1“ ja see ei ole deklareeritud vahetult esimese print-lause all, kuvatakse taandevea: „unindent does not match any other dentation level“.

Funktsiooni määratlemine ja sisse kutsumine Python

Kui nüüd mõlemale lausele sama taanet rakendada ja need samale reale joondada, annab see oodatud väljundi.

Funktsiooni määratlemine ja sisse kutsumine Python

Kuidas funktsioon tagastab väärtuse?

Tagastuskäsk Python määrab, millist väärtust funktsiooni kutsujale tagasi anda. Vaatleme seda järgmise näite abil.

Samm 1) Funktsioon ei tagasta midagi

Siin näeme, millal funktsioon ei "tagasta". Näiteks tahame arvu 4 ruutu ja see peaks koodi käivitamisel andma vastuseks "16". See annab selle, kui kasutame lihtsalt koodi "print x*x", kuid funktsiooni "print square" kutsumisel annab see väljundiks "None". Seda seetõttu, et funktsiooni kutsumisel rekursiooni ei toimu ja see langeb funktsiooni lõpust maha. Python tagastab funktsiooni lõpust väljalangemise korral väärtuse „None“.

Funktsiooni määratlemine ja sisse kutsumine Python

2. samm) Asendage printimiskäsk määramiskäsuga

Selle selgemaks tegemiseks asendame print-käsu omistamiskäsuga. Kontrollime väljundit.

Funktsiooni määratlemine ja sisse kutsumine Python

Kui käivitada käsk „print square (4)“, tagastab see tegelikult objekti väärtuse. Kuna meil pole siin ühtegi konkreetset funktsiooni käivitada, tagastab see väärtuse „None“.

3. samm) Kasutage funktsiooni „return” ja käivitage kood

Nüüd vaatame, kuidas väljundit käsuga „return” hankida. Funktsiooni „return” kasutamisel ja koodi käivitamisel saadakse väljundiks „16”.

Funktsiooni määratlemine ja sisse kutsumine Python

Samm 4) Käivitage käsk "prindi ruut"

Funktsioonid sees Python on ise objekt ja objektil on mingi väärtus. Vaatame siin, kuidas Python käsitleb objekti. Kui käivitate käsu „print square”, tagastab see objekti väärtuse. Kuna me pole ühtegi argumenti edastanud, pole meil siin ühtegi konkreetset funktsiooni, seega tagastab see vaikeväärtuse (0x021B2D30), mis on objekti asukoht. Praktikas Python programmi, siis tõenäoliselt ei pea te seda kunagi tegema.

Funktsiooni määratlemine ja sisse kutsumine Python

Argumendid funktsioonides

Argument on väärtus, mis antakse funktsioonile selle kutsumisel.

Teisisõnu, kutsuva poole pealt on see argument ja funktsiooni poolelt parameeter.

Vaatame, kuidas Python argumendid toimivad.

Step 1) Argumendid deklareeritakse funktsiooni definitsioonis. Funktsiooni kutsudes saate nende argumentide väärtused edastada allpool näidatud viisil.

Funktsiooni määratlemine ja sisse kutsumine Python

Step 2) Argumendi vaikeväärtuse deklareerimiseks määrake sellele väärtus funktsiooni definitsioonis.

Funktsiooni määratlemine ja sisse kutsumine Python

Näide: x-il pole vaikeväärtust. y vaikeväärtus on 0. Kui korrutusfunktsiooni kutsumisel anname ainult ühe argumendi, Python määrab x-ile antud väärtuse, samal ajal kui keeping y väärtus=0. Seega x*y=0 korrutis.

Funktsiooni määratlemine ja sisse kutsumine Python

Step 3) Seekord muudame väärtuseks y=2 vaikeväärtuse y=0 asemel ja tagastame väljundi kujul (4×2)=8.

Funktsiooni määratlemine ja sisse kutsumine Python

Step 4) Samuti saate muuta argumentide edastamise järjekorda PythonSiin oleme x ja y väärtuste järjekorra ümber pööranud, x=4 ja y=2.

Funktsiooni määratlemine ja sisse kutsumine Python

Step 5) Mitu argumenti saab edastada ka massiivina. Selles näites kutsume mitu argumenti (1,2,3,4,5) välja funktsiooni (*args) abil.

Näide: Deklareerisime mitu argumenti numbritena (1,2,3,4,5); funktsiooni (*args) kutsumisel prindib see väljundi kujul (1,2,3,4,5).

Funktsiooni määratlemine ja sisse kutsumine Python

Nõuanne:

  • In Python 2.7-s ei toetata funktsioonide ülekoormamist. Funktsioonide ülekoormamine on võimalus luua mitu sama nimega meetodit erineva implementatsiooniga. Funktsioonide ülekoormamine on täielikult toetatud versioonis Python 3.
  • Meetodite ja funktsioonide vahel on üsna suur segadus. Meetodid Python on seotud objekti eksemplaridega, funktsioonid aga mitte. Millal Python kutsub välja meetodi, seob see selle väljakutse esimese parameetri vastava objektiviitega. Lihtsamalt öeldes, iseseisev funktsioon Python on "funktsioon", samas kui funktsioon, mis on klassi või eksemplari atribuut, on "meetod".

Siin on täielik Python 3 kood

#define a function
def func1():
   print ("I am learning Python function")
   print ("still in func1")
   
func1()

def square(x):
  	return x*x
print(square(4))

def multiply(x,y=0):
	print("value of x=",x)
	print("value of y=",y)
    
	return x*y
  
print(multiply(y=2,x=4))

Siin on täielik Python 2 kood

#define a function
def func1():
   print " I am learning Python function"
   print " still in func1"
   
func1()

def square(x):
  	return x*x
print square(4)

def multiply(x,y=0):
	print"value of x=",x
	print"value of y=",y
    
	return x*y
  
print multiply(y=2,x=4)

KKK

Jah. A Python Funktsioon saab tagastada mitu väärtust, eraldades need komadega pärast return märksõna. Python pakib need tuple'iks, mille kutsuja saab lahti pakkida eraldi muutujateks, näiteks a, b = func().

*args kogub lisapositsioonilisi argumente tuplesse, samas kui **kwargs kogub lisamärksõnaargumente sõnastikku. Mõlemad võimaldavad funktsioonil vastu võtta muutuvat arvu sisendeid ning nimed args ja kwargs on vaid kokkulepe, mitte nõue.

Docstring on stringi literaal, mis paigutatakse funktsiooni esimese lausena, et dokumenteerida selle tegevust. See kirjutatakse kolmekordsete jutumärkide vahel ja seda saab käitusajal lugeda funktsiooni atribuudi __doc__ või funktsiooni help() abil.

Lambda on väike anonüümne funktsioon, mis on defineeritud ühel real märksõnaga lambda, mitte märksõnaga def. See sobib lühikese, ühekordse loogikaga, mida antakse edasi sellistele funktsioonidele nagu map(), filter() ja sorted(). Vaata seda lambda funktsioon juhend.

Jah. Funktsioon, mis kutsub välja iseennast, on rekursiivne funktsioon. Rekursioon lahendab probleeme, mis jagunevad väiksemateks sarnasteks alamprobleemideks, näiteks faktoriaalideks. Igal rekursiivsel funktsioonil on vaja baasjuhtumit, mis peatab väljakutsed, vastasel juhul Python tekitab rekursioonivea.

Lokaalne muutuja luuakse funktsiooni sees ja eksisteerib ainult funktsiooni töötamise ajal. Globaalne muutuja defineeritakse väljaspool kõiki funktsioone ja on nähtav kõikjal. Globaalse muutuja muutmiseks funktsiooni sees deklareeritakse see kõigepealt märksõnaga global.

GitHub Copilot soovitab funktsiooni täielikku sisu nime või lühikese kommentaari põhjal, mis sisaldab parameetreid, tagastuslauseid ja dokumente. See pakub ka äärmusjuhtude käsitlemist ja teste, võimaldades teil keskenduda loogikale, mitte tüüpidele.ping standardsed def plokid.

Funktsioonid korraldavad tehisintellekti ja masinõppe koodi korduvkasutatavateks etappideks, nagu andmete laadimine, eeltöötlus, treenimine ja hindamine. Need hoiavad katsed loetavatena ja testitavatena ning raamistikud nagu TensorFlow ja scikit-learn avaldavad suurema osa oma käitumisest hästi nimetatud funktsioonide kaudu, mida saate kutsuda.

Võta see postitus kokku järgmiselt: