Hogyan hívjunk be egy függvényt Python (Példa)

⚡ Okos összefoglaló

Funkciók be Python olyan újrafelhasználható kódblokkok, amelyek meghívásra futnak, és a def utasítással vannak definiálva. Argumentumokat fogadnak el, értékeket adnak vissza, és konzisztens behúzásra támaszkodnak az egyes függvényekhez tartozó utasítások csoportosításához.

  • 🧩 def utasítás: Egy függvényt a def, egy név és zárójelek definiálnak, majd egy kettőspont következik, amely megnyitja a behúzott utasításblokkot.
  • 📞 Hívó függvények: A függvény nevének zárójelek közé iktatása lefuttatja a kódját, így ugyanaz a logika sokszor újra felhasználható.
  • ⌨️ Behúzás: Python A függvény törzsét konzisztens behúzással csoportosítja a zárójelek helyett, így egy hiányzó szóköz IndentationError hibát okoz.
  • 🎯 érvek: A zárójelben átadott értékek paraméterekké válnak, az alapértelmezett értékek vagy kulcsszavas argumentumok pedig rugalmassá teszik az egyes hívásokat.
  • ↩️ Visszatérési értékek: A return utasítás egy eredményt ad vissza a hívónak; enélkül a függvény None értéket ad vissza.
  • 🤖 AI segítség: Az olyan mesterséges intelligencia asszisztensek, mint a GitHub Copilot, egy rövid promptból függvényvázakat, argumentumokat és dokumentációs karakterláncokat generálnak.

Hogyan hívjunk be egy függvényt Python

Miben található a funkció Python?

A Funkció be Python egy olyan kódrészlet, amely akkor fut, amikor hivatkoznak rá. Arra szolgál, hogy a kódot egynél több helyen is felhasználhassuk a programban. Metódusnak vagy eljárásnak is nevezik. Python számos beépített függvényt biztosít, mint például a print(), input(), compile() és exec(), de szabadságot ad saját függvények létrehozására is.

Hogyan definiáljunk és hívjunk be egy függvényt Python

Egy funkció benne Python a „def” utasítással definiálható, amelyet a függvény neve és a zárójelek ( () ) követnek.

Példa:

Definiáljunk egy függvényt a „def func1():” parancs használatával, majd hívjuk meg a függvényt. A függvény kimenete a következő lesz: „Tanulok Python funkció".

Határozzon meg és hívjon be egy függvényt Python

A func1() függvényhívás meghívja a def func1() függvényünket, és kiírja a következő parancsot: „Tanulok Python „függvény Nincs.”

Van egy szabályrendszer, Python programozás függvény definiálásához.

  • Minden argumentumot vagy bemeneti paramétert ezek közé a zárójelek közé kell helyezni.
  • A függvény első utasítása lehet egy opcionális utasítás – a függvény dokumentációs karakterlánca.
  • Minden függvényen belüli kód kettősponttal (:) kezdődik, és behúzott (szóköz) karakterekkel kell tagolni.
  • A return (kifejezés) utasítás kilép egy függvényből, opcionálisan egy értéket adva vissza a hívónak. Az argumentumok nélküli return utasítás ugyanaz, mint a return None.

A behúzás (Space) jelentősége in Python

Mielőtt megismerkednénk Python függvényeket, fontos, hogy megértsük a deklarálandó behúzási szabályt Python funkciók, és ezek a szabályok más elemeire is vonatkoznak Python valamint, például feltételek, ciklusok vagy változók deklarálása.

Python egy adott behúzási stílust követ a kód meghatározásához. Mivel Python A függvényeknek nincs explicit kezdetük vagy végük, mint például a kapcsos zárójeleknek, amelyek a függvény kezdetét és végét jelzik, ezért erre a behúzásra kell támaszkodniuk. Itt egy egyszerű példát nézünk a „print” paranccsal. Amikor a „print” függvényt közvetlenül a def func1(): sor alá írjuk, akkor a következő hibaüzenetet fogja mutatni: „behúzási hiba: behúzott blokkot vártunk”.

Határozzon meg és hívjon be egy függvényt Python

Most, amikor a „print” függvény elé hozzáadjuk a behúzást (szóközt), akkor a várt módon kell kinyomtatnia.

Határozzon meg és hívjon be egy függvényt Python

Legalább egy behúzás elég ahhoz, hogy a kódod sikeresen működjön. De ajánlott gyakorlatként körülbelül 3-4 behúzásnyi helyet hagyni a függvény meghívásához.

Az is fontos, hogy a behúzás deklarálása során a kód többi részében is megtartsuk a behúzást. Például az alábbi képernyőképen, amikor egy másik, „still in func1” utasítást hívunk meg, és az nem közvetlenül az első print utasítás alatt van deklarálva, akkor egy behúzási hibát fog kapni: „az unindent nem egyezik semmilyen más behúzási szinttel”.

Határozzon meg és hívjon be egy függvényt Python

Most, amikor mindkét utasításra ugyanazt a behúzást alkalmazzuk, és ugyanarra a sorra igazítjuk őket, akkor a várt kimenetet adja.

Határozzon meg és hívjon be egy függvényt Python

Hogyan térül meg a függvény?

A visszatérési parancs a Python meghatározza, hogy milyen értéket kell visszaadni a függvény hívójának. Nézzük meg ezt a következő példával.

1. lépés) A függvény nem ad vissza semmit

Itt láthatjuk, hogy egy függvény mikor nem „ad vissza” értéket. Például a 4 négyzetét szeretnénk, és a kód végrehajtásakor „16”-ot kellene adnia. Ezt adja, amikor egyszerűen a „print x*x” kódot használjuk, de amikor a „print square” függvényt hívjuk, „None” értéket ad kimenetként. Ez azért van, mert a függvény meghívásakor nem történik rekurzió, és a függvény végére esik. Python „None” értéket ad vissza, ha a függvény végéről lemarad.

Határozzon meg és hívjon be egy függvényt Python

2. lépés) Cserélje le a nyomtatási parancsot egy hozzárendelési parancsra

Hogy ezt világosabbá tegyük, a print parancsot egy értékadó paranccsal helyettesítjük. Ellenőrizzük a kimenetet.

Határozzon meg és hívjon be egy függvényt Python

Amikor a „print square (4)” parancsot futtatod, az valójában az objektum értékét adja vissza. Mivel nincs itt semmilyen konkrét függvényünk, amit lefuttathatnánk, a „None” értéket adja vissza.

3. lépés) Használd a 'return' függvényt és futtasd a kódot

Most pedig megnézzük, hogyan kérhetjük le a kimenetet a „return” parancs használatával. Amikor a „return” függvényt használjuk és végrehajtjuk a kódot, a kimenet „16” lesz.

Határozzon meg és hívjon be egy függvényt Python

4. lépés) Futtassa a "négyzet nyomtatása" parancsot

Funkciók be Python maguk is tárgyak, és egy tárgynak van valamilyen értéke. Itt meglátjuk, hogyan Python kezel egy objektumot. Amikor a „nyomtassa ki a négyzetet” parancsot futtatja, az objektum értékét adja vissza. Mivel nem adtunk át argumentumot, nincs itt semmilyen konkrét függvényünk, amelyet lefuttathatnánk, ezért egy alapértelmezett értéket (0x021B2D30) ad vissza, amely az objektum helye. Gyakorlatilag Python programot, akkor valószínűleg soha nem lesz szükséged erre.

Határozzon meg és hívjon be egy függvényt Python

Érvek a függvényekben

Az argumentum egy érték, amelyet a függvény meghívásakor átadunk neki.

Más szóval, a hívó oldalon ez egy argumentum, a függvény oldalán pedig egy paraméter.

Nézzük meg, hogyan Python az érvek működnek.

Step 1) Az argumentumokat a függvénydefinícióban deklaráljuk. A függvény meghívásakor az alábbiak szerint adhatjuk meg az argumentumok értékeit.

Határozzon meg és hívjon be egy függvényt Python

Step 2) Egy argumentum alapértelmezett értékének deklarálásához rendeljünk hozzá egy értéket a függvénydefinícióban.

Határozzon meg és hívjon be egy függvényt Python

Példa: x-nek nincs alapértelmezett értéke. Az y alapértelmezett értéke 0. Amikor a szorzófüggvény meghívásakor csak egy argumentumot adunk meg, Python hozzárendeli a megadott értéket x-hez, miközben keeping y=0 értéke. Ezért az x*y=0 szorzata.

Határozzon meg és hívjon be egy függvényt Python

Step 3) Ezúttal az alapértelmezett y=0 érték helyett y=2-re változtatjuk az értéket, és a kimenet (4×2)=8 lesz.

Határozzon meg és hívjon be egy függvényt Python

Step 4) Azt is megváltoztathatja, hogy milyen sorrendben kerülnek átadásra az argumentumok a PythonItt megfordítottuk az x és y értékek sorrendjét x=4-re és y=2-re.

Határozzon meg és hívjon be egy függvényt Python

Step 5) Több argumentum is átadható tömbként. Ebben a példában az (*args) függvény meghívásával hívjuk meg az (1,2,3,4,5) argumentumokat.

Példa: Több argumentumot deklaráltunk (1,2,3,4,5) számként; amikor meghívjuk az (*args) függvényt, a kimenetet (1,2,3,4,5) formátumban írja ki.

Határozzon meg és hívjon be egy függvényt Python

Tipp:

  • In Python 2.7-es verzióban a függvények túlterhelése nem támogatott. A függvények túlterhelése azt a képességet jelenti, hogy több, azonos nevű metódust hozzunk létre eltérő implementációval. A függvények túlterhelése teljes mértékben támogatott a következő verzióban: Python 3.
  • Meglehetősen zavaros a metódusok és a függvények közötti zűrzavar. Metódusok a Python objektumpéldányokhoz vannak társítva, míg a függvényekhez nem. Amikor Python metódus hívásakor az adott hívás első paraméterét a megfelelő objektumhivatkozáshoz köti. Egyszerűen fogalmazva, egy önálló funkció Python egy „függvény”, míg egy függvény, amely egy osztály vagy egy példány attribútuma, „metódus”.

Itt a teljes Python 3 kód

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

Itt a teljes Python 2 kód

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

GYIK

Igen. A Python A függvény több értéket is visszaadhat, ha a return kulcsszó után vesszővel elválasztjuk őket. Python egy tuple-be csomagolja őket, amelyet a hívó külön változókba bonthat ki, például a, b = func().

Az *args függvény egy tuple-be gyűjti az extra pozicionális argumentumokat, míg a **kwargs függvény egy szótárba gyűjti az extra kulcsszó-argumentumokat. Mindkettő lehetővé teszi, hogy a függvények változó számú bemenetet fogadjanak el, és az "args" és "kwargs" nevek csak konvenció, nem követelmény.

A docstring egy karakterlánc literál, amely a függvény első utasításaként szerepel, és a függvény működését dokumentálja. Tripla idézőjelek között íródik, és futásidőben a függvény __doc__ attribútumán vagy a help() függvényen keresztül olvasható.

A lambda egy kis anonim függvény, amelyet egy sorban a lambda kulcsszóval definiálunk a def kulcsszó helyett. Rövid, eldobható logikát alkalmaz, amelyet olyan függvényeknek adunk át, mint a map(), filter() és sorted(). Lásd ezt: lambda funkció útmutató.

Igen. Egy önmagát meghívó függvény rekurzív függvény. A rekurzió olyan problémákat old meg, amelyek kisebb, hasonló részproblémákra bonthatók, például faktoriálisokra. Minden rekurzív függvénynek szüksége van egy alapesetre, amely leállítja a hívásokat, különben Python RecursionError hibát okoz.

A lokális változókat egy függvényen belül hozzuk létre, és csak a függvény futása alatt léteznek. A globális változókat minden függvényen kívül definiáljuk, és mindenhol láthatók. Egy globális változó függvényen belüli megváltoztatásához először a global kulcsszóval kell deklarálni.

A GitHub Copilot egy teljes függvénytörzset javasol a nevéből vagy egy rövid megjegyzésből, beleértve a paramétereket, a visszatérési utasításokat és a dokumentációs karakterláncokat. Emellett szélső esetek kezelését és teszteket is javasol, lehetővé téve, hogy a logikára koncentrálj a ty helyett.ping sablonos def blokkok.

A függvények a mesterséges intelligencia és a gépi tanulás kódját újrafelhasználható lépésekbe rendezik, például adatbetöltésbe, előfeldolgozásba, betanításba és kiértékelésbe. A kísérleteket olvashatóvá és tesztelhetővé teszik, és az olyan keretrendszerek, mint a TensorFlow és a scikit-learn, viselkedésük nagy részét jól elnevezett, meghívott függvényeken keresztül teszik elérhetővé.

Foglald össze ezt a bejegyzést a következőképpen: