Kuinka kutsua funktio sisään Python (Esimerkki)

⚡ Älykäs yhteenveto

Toiminnot Python ovat uudelleenkäytettäviä koodilohkoja, jotka suoritetaan kutsuttaessa ja jotka on määritelty def-lauseella. Ne hyväksyvät argumentteja, palauttavat arvoja ja käyttävät yhdenmukaista sisennystä ryhmitelläkseen kuhunkin funktioon kuuluvat lausekkeet.

  • 🧩 def-lauseke: Funktio määritellään def-lausekkeen, nimen ja sulkeiden avulla, joita seuraa kaksoispiste, joka avaa sisennettynä olevan lausekelohkon.
  • 📞 Kutsuvat funktiot: Funktion nimen kirjoittaminen sulkeisiin suorittaa koodin, joten samaa logiikkaa voidaan käyttää uudelleen monta kertaa.
  • ⌨️ Sisennys: Python ryhmittelee funktion rungon johdonmukaisen sisennyksen avulla aaltosulkeiden sijaan, joten puuttuva välilyönti aiheuttaa IndentationError-virheen.
  • 🎯 argumentit: Sulkeiden sisällä olevista arvoista tulee parametreja, ja oletusarvot tai avainsana-argumentit tekevät jokaisesta kutsusta joustavan.
  • ↩️ Paluuarvot: Return-lauseke välittää tuloksen takaisin kutsujalle; ilman sitä funktio palauttaa arvon None.
  • 🤖 AI-apu: Tekoälyavustajat, kuten GitHub Copilot, luovat funktioiden runkoja, argumentteja ja dokumentaatiomerkkijonoja lyhyestä kehotteesta.

Kuinka kutsua funktio sisään Python

Mitä toiminto sisältää Python?

A Toiminto sisään Python on koodipätkä, joka suoritetaan, kun siihen viitataan. Sitä käytetään koodin hyödyntämiseen useammassa kuin yhdessä paikassa ohjelmassa. Sitä kutsutaan myös metodiksi tai proseduuriksi. Python tarjoaa monia sisäänrakennettuja funktioita, kuten print(), input(), compile() ja exec(), mutta se antaa sinulle myös vapauden luoda omia funktioita.

Kuinka määritellä ja kutsua funktio Python

Toiminto sisään Python määritellään ”def”-lausekkeella, jota seuraa funktion nimi ja sulkeet ( () ).

Esimerkiksi:

Määritellään funktio komennolla “def func1():” ja kutsutaan funktiota. Funktion tuloste on “Olen oppimassa Python toiminto ”.

Määritä ja kutsu funktio sisään Python

Funktiokutsu func1() käynnistää def func1()-funktion ja tulostaa komennon “Olen oppimassa Python toiminto Ei mitään.”

On olemassa joukko sääntöjä Python ohjelmointi funktion määrittelemiseksi.

  • Kaikki argumentit tai syöttöparametrit tulee sijoittaa näiden sulkeiden sisään.
  • Funktion ensimmäinen lauseke voi olla valinnainen lauseke — funktion docstring- tai documentation-merkkijono.
  • Jokaisen funktion koodi alkaa kaksoispisteellä (:) ja tulee sisentää (välilyönnillä).
  • Lauseke return (lauseke) poistuu funktiosta ja halutessaan palauttaa kutsujalle arvon. Return-lauseke ilman argumentteja on sama kuin return None.

Sisennys (avaruus) in Python

Ennen kuin tutustumme Python funktiot, on tärkeää, että ymmärrämme sisennyssäännön ilmoittaa Python funktioita, ja näitä sääntöjä sovelletaan muihinkin elementteihin Python sekä, kuten ehtojen, silmukoiden tai muuttujien määrittäminen.

Python noudattaa tiettyä sisennystyyliä koodin määrittelemiseksi. Koska Python Funktioilla ei ole eksplisiittistä alkua tai loppua, kuten aaltosulkeita, jotka osoittaisivat funktion alun ja lopun, vaan niiden on luotettava tähän sisennykseen. Tässä otamme yksinkertaisen esimerkin "print"-komennon kanssa. Kun kirjoitamme "print"-funktion heti def func1():-rivin alapuolelle, se näyttää virheilmoituksen "sisennysvirhe: odotettiin sisennettyä lohkoa".

Määritä ja kutsu funktio sisään Python

Kun nyt lisäät sisennyksen (välilyönnin) "print"-funktion eteen, sen pitäisi tulostua odotetulla tavalla.

Määritä ja kutsu funktio sisään Python

Ainakin yksi sisennys riittää koodisi toimimiseen. Mutta parhaana käytäntönä on suositeltavaa jättää noin 3–4 sisennystä funktion kutsumista varten.

On myös välttämätöntä, että sisennystä määritettäessä säilytetään sama sisennys koko koodin ajan. Esimerkiksi alla olevassa kuvakaappauksessa, kun kutsumme toista lausetta ”still in func1” eikä sitä ole määritelty heti ensimmäisen tulostuslausekkeen alapuolella, näytetään sisennysvirhe: ”unindent does not match any other indentation level”.

Määritä ja kutsu funktio sisään Python

Kun nyt käytämme samaa sisennystä molemmissa lauseissa ja tasaamme ne samalle riville, se antaa odotetun tulosteen.

Määritä ja kutsu funktio sisään Python

Kuinka funktio palauttaa arvon?

Return-komento kohdassa Python määrittää, minkä arvon annetaan takaisin funktion kutsujalle. Ymmärretään tämä seuraavan esimerkin avulla.

Vaihe 1) Funktio ei palauta mitään

Tässä näemme tilanteen, jossa funktio ei "palauta". Esimerkiksi haluamme luvun 4 neliön, ja sen pitäisi antaa vastaukseksi "16", kun koodi suoritetaan. Se antaa tämän, kun käytämme yksinkertaisesti "print x*x" -koodia, mutta kun kutsut funktiota "print square", se antaa tulosteena "None". Tämä johtuu siitä, että funktiota kutsuttaessa rekursiota ei tapahdu ja se putoaa funktion lopusta. Python palauttaa arvon ”None”, jos se ei ole funktion lopussa.

Määritä ja kutsu funktio sisään Python

Vaihe 2) Korvaa tulostuskomento sijoituskomennolla

Selventääksemme tätä korvaamme tulostuskomennon sijoituskomennolla. Tarkistetaan tuloste.

Määritä ja kutsu funktio sisään Python

Kun suoritat komennon ”print square (4)”, se itse asiassa palauttaa objektin arvon. Koska meillä ei ole tässä suoritettavana mitään tiettyä funktiota, se palauttaa arvon ”None”.

Vaihe 3) Käytä 'return'-funktiota ja suorita koodi

Seuraavaksi katsomme, miten tuloste noudetaan komennolla ”return”. Kun käytät ”return”-funktiota ja suoritat koodin, tulosteeksi tulee ”16”.

Määritä ja kutsu funktio sisään Python

Vaihe 4) Suorita komento "print square"

Toiminnot Python ovat itse esine, ja esineellä on jokin arvo. Katsotaan täällä kuinka Python käsittelee objektia. Kun suoritat komennon “print square”, se palauttaa objektin arvon. Koska emme ole antaneet mitään argumenttia, meillä ei ole tässä suoritettavana mitään tiettyä funktiota, joten se palauttaa oletusarvon (0x021B2D30), joka on objektin sijainti. Käytännössä Python ohjelmaa, sinun ei luultavasti koskaan tarvitse tehdä tätä.

Määritä ja kutsu funktio sisään Python

Argumentit funktioissa

Argumentti on arvo, joka annetaan funktiolle, kun sitä kutsutaan.

Toisin sanoen, kutsuvalla puolella se on argumentti ja funktion puolella se on parametri.

Katsotaanpa kuinka Python argumentit toimivat.

Vaihe 1) Argumentit deklaroidaan funktion määritelmässä. Funktiota kutsuessasi voit välittää argumenttien arvot alla esitetyllä tavalla.

Määritä ja kutsu funktio sisään Python

Vaihe 2) Jos haluat määrittää argumentille oletusarvon, anna sille arvo funktion määritelmässä.

Määritä ja kutsu funktio sisään Python

Esimerkiksi: x:llä ei ole oletusarvoa. Y:n oletusarvo on 0. Kun annamme vain yhden argumentin kertolaskufunktiota kutsuttaessa, Python määrittää annetun arvon x:lle, kun taas keeping y=0. Tästä johtuu x*y=0:n kertolasku.

Määritä ja kutsu funktio sisään Python

Vaihe 3) Tällä kertaa muutamme arvon y=2:ksi oletusarvon y=0 sijaan, ja se palauttaa tulosteen muodossa (4×2)=8.

Määritä ja kutsu funktio sisään Python

Vaihe 4) Voit myös muuttaa argumenttien välitysjärjestystä PythonTässä olemme vaihtaneet arvojen x ja y järjestyksen muotoon x=4 ja y=2.

Määritä ja kutsu funktio sisään Python

Vaihe 5) Useita argumentteja voidaan myös välittää taulukkona. Tässä esimerkissä kutsumme useita argumentteja (1,2,3,4,5) kutsumalla (*args)-funktiota.

Esimerkiksi: Esittelimme useita argumentteja numeroina (1,2,3,4,5); kun kutsumme (*args)-funktiota, se tulostaa tuloksen muodossa (1,2,3,4,5).

Määritä ja kutsu funktio sisään Python

Vinkki:

  • In Python 2.7:ssä funktioiden ylikuormitusta ei tueta. Funktioiden ylikuormitus tarkoittaa mahdollisuutta luoda useita samannimisiä metodeja eri toteutuksilla. Funktioiden ylikuormitusta tuetaan täysin versiossa Python 3.
  • Metodien ja funktioiden välillä on melkoinen sekaannus. Menetelmät Python liittyvät objekti-instanssien kanssa, kun taas funktiot eivät. Kun Python kutsuu menetelmää, se sitoo kyseisen kutsun ensimmäisen parametrin sopivaan objektiviittaukseen. Yksinkertaisesti sanottuna, itsenäinen toiminto Python on "funktio", kun taas funktio, joka on luokan tai ilmentymän attribuutti, on "menetelmä".

Tässä on täydellinen Python 3-koodi

#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))

Tässä on täydellinen Python 2-koodi

#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)

UKK

Joo. A Python Funktio voi palauttaa useita arvoja erottamalla ne pilkuilla return-avainsanan jälkeen. Python pakkaa ne tupleksi, jonka kutsuja voi purkaa erillisiin muuttujiin, esimerkiksi a, b = func().

*args kerää ylimääräiset sijaintiargumentit tupleen, kun taas **kwargs kerää ylimääräiset avainsana-argumentit sanakirjaan. Molemmat antavat funktion hyväksyä muuttuvan määrän syötteitä, ja nimet args ja kwargs ovat vain sopimus, ei vaatimus.

Docsstring on merkkijonoliteraali, joka sijoitetaan funktion ensimmäiseksi lausekkeeksi dokumentoimaan funktion toimintaa. Se kirjoitetaan kolminkertaisiin lainausmerkkeihin ja se voidaan lukea suorituksen aikana funktion __doc__-attribuutin tai help()-funktion avulla.

Lambda on pieni anonyymi funktio, joka määritellään yhdellä rivillä avainsanalla lambda def-avainsanan sijaan. Se sopii lyhyeen, kertakäyttöiseen logiikkaan, jota annetaan funktioille, kuten map(), filter() ja sorted(). Katso tämä lambda -toiminto opas.

Kyllä. Funktio, joka kutsuu itseään, on rekursiivinen funktio. Rekursio ratkaisee ongelmia, jotka jakautuvat pienempiin samankaltaisiin osaongelmiin, kuten kertomiin. Jokainen rekursiivinen funktio tarvitsee perustapauksen, joka pysäyttää kutsut, muuten Python aiheuttaa rekursiovirheen.

Paikallinen muuttuja luodaan funktion sisään ja on olemassa vain funktion suorituksen ajan. Globaali muuttuja määritellään kaikkien funktioiden ulkopuolella ja se näkyy kaikkialla. Jos haluat muuttaa globaalia muuttujaa funktion sisällä, määritä se ensin global-avainsanalla.

GitHub Copilot ehdottaa täydellistä funktion runkoa sen nimestä tai lyhyestä kommentista, mukaan lukien parametrit, paluulauseet ja dokumentaatiomerkkijonot. Se ehdottaa myös reunatapausten käsittelyä ja testejä, jolloin voit keskittyä logiikkaan ty:n sijaan.ping vakiomallin def-lohkot.

Funktiot järjestävät tekoäly- ja koneoppimiskoodin uudelleenkäytettäviin vaiheisiin, kuten datan lataamiseen, esikäsittelyyn, koulutukseen ja arviointiin. Ne pitävät kokeet luettavina ja testattavina, ja kehykset, kuten TensorFlow ja scikit-learn, paljastavat suurimman osan toiminnastaan ​​hyvin nimettyjen funktioiden kautta.

Tiivistä tämä viesti seuraavasti: