A függvény meghatározása nagyon egyszerű: ez egy kis kódrészlet, ami valami specifikus feladatot lát el. A függvény az utasítások olyan blokkja, ami végrehajtja a benne meghatározott művelet(ek)et, és miután lefutott, tetszőlegesen újra hívható, futtatható. A függvények modulárisabbá, áttekinthetőbbé teszik a kódot, lehetővé téve ugyanazon kódrészlet (függvény) újra és újra használatát.

A Python számos beépített függvénnyel rendelkezik, amikkel már megismerkedtünk, többek között:

  • print (), ami adatokat nyomtat a terminálra
  • int (), ami egy karakterlánc vagy szám adattípust egész adattípussá konvertál
  • len (), ami egy objektum (pl. string) hosszát adja vissza

A függvénynevek zárójeleket tartalmaznak, és tartalmazhatnak paramétereket.

Ebben a leckében azt vizsgáljuk, meg hogy, hogyan készíthetünk saját függvényeket, amiket a kódolási projektjeinkben használhatunk.

A függvények létrehozása a def kulcsszóval történik, a következő módon:

def fuggveny(param1):
    """Ez egy függvény"""
    # ... jelenleg nem sokat csinál
    print "semmi"
    return None

A def kulcsszót a függvény neve követi, majd utána zárójelben a függvénynek átadandó paramétereket soroljuk fel, jelen esetben ez csak egy, param1 nevű paramétert jelent. Ezután megadhatunk a függvényben egy ún. doc-stringet, amiben leírhatjuk pár szóval, hogy mit csinál, majd megírjuk a függvény törzsét. A függvény visszatérésekor a példánkban a „None” értéket adja.

Első példánk legyen egy klasszikus „Hello, World” függvény! Az első lépés a függvény létrehozása:

def hello():

Egyelőre a függvény neve után álló zárójelek üresek. A függvény létrehozása után következik az a kódrészlet, ami majd a függvény hívásakor lefut:

def hello():
    print("Hello, World!")

A függvényünk elkészült, ha ezek után beillesztjük egy programba, akkor még semmit nem fog csinálni. Ahhoz, hogy működjön, meg kell hívnunk, ami a nevével történik:

def hello():
    print("Hello, World!")

hello()

Ez a program még tényleg nem csinál sok hasznosat, a következővel azonban ki tudjuk számoltatni pl. egy háromszög kerületét:

def triangle(a,b,c):
    print("perimeter: ",a+b+c)

triangle(3,4,5)

Sokkal rugalmasabb a program, ha az oldalhosszakat mi adhatjuk meg!

def triangle(a,b,c):
    print("ker: ",a+b+c)

a = input("a oldal: ")
b = input("b oldal: ")
c = input("c oldal: ")

triangle(a,b,c)

A program futtatása után a következő, elsőre meglepő eredményt kapjuk:

a oldal: 5
b oldal: 6
c oldal: 7

ker:  567

A meglepő eredményt a hibás változó típus alkalmazása okozza, a program string-ként dolgozza fel az értékeket. A program helyesen:

def triangle(a,b,c):
    print("ker: ",a+b+c)

a = float(input("a oldal: "))
b = float(input("b oldal: "))
c = float(input("c oldal: "))

triangle(a,b,c)

A fenti program a következő eredmény produkálja, ami már helyes:

a oldal: 5
b oldal: 6
c oldal: 7

ker:  18.0

A „return” kuklcsszó és a visszatérési érték

A „return” kulcsszót arra használhatjuk, hogy segítségével kilépjünk a függvényből, és a főprogram azon pontjára kerüljünk vissza, ahol a hívás történt. A „return” tartalmazhat visszatérési értéket is, ami például egy számítás eredménye lehet.

A következő példa egy olyan függvény, ami a megadott szám abszolút értékét számolja ki, majd visszatérve a hívás helyére az eredményt megjeleníti a konzolon:

def absolute_value(num):
	"""This function returns the absolute
	value of the entered number"""

	if num >= 0:
		return num
	else:
		return -num

num = float(input("enter a number: "))
print(absolute_value(num))

A program futási eredménye:

enter a number: -12.6
12.6

Egy másik példa két szám összegzését végzi:

def add_numbers(x,y):
   sum = x + y
   return sum

num1 = float(input("num1: "))
num2 = float(input("num2: "))

print("The sum is", add_numbers(num1, num2))

Utolsó példánk egy négy alapműveletet végrehajtó „ számológép”, ami további függvények hozzáadásával bővíthető!

def add_numbers(x,y):
   sum = x + y
   return sum
def subt_numbers(x,y):
    subt = x - y
    return subt
def multi_numbers(x,y):
    multi = (x*y)
    return multi
def div_numbers(x,y):
    div = (x/y)
    return div

num1 = float(input("num1: "))
num2 = float(input("num2: "))

op = int(input("operation: 1:sum, 2:subtract, 3:multiplication, 4:divison  "))
if op == 1:
    print("The sum is", add_numbers(num1, num2))
elif op == 2:
    print("The subt. is", subt_numbers(num1, num2))
elif op == 3:
    print("The multi. is", multi_numbers(num1, num2))
elif op == 4:
    print("The div. is", div_numbers(num1, num2))

else:
    print("unknown operation")

Függvények:

A függvények olyan utasításkód blokkok, amelyek egy programon belül hajtanak végre műveleteket, elősegítve a kód újrafelhasználhatóságát és moduláris használatát.

A forráskódok letölthetőek:

Folytatása következik…