"""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 a
dattí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."""
nevek1 = ['Xena', 'Bozsi', 'Vica', 'Emi', 'Ildi', 'Zsuzsi', 'Evi']
nevek2 = ['Pityu', 'Ati', 'Peti', 'Bence', 'Feri']
#ha ezt ki akarom íratni megthetem egy for ciklussal:
for nev in nevek1:
print(nev) #ha lefuttatom akkor kiírja a neveket
for nev in nevek2:
print(nev) # a masodik for loop kiprintelte a nevek 2 listából
#ennek van egy egyszerűbb módja is, ahelyett, hogy két for loopot írnánk
"""def nev_printer():
pass #egyenlőre ne csináljon semmit,
a függvény definíciónál a de kulcsszóval kezdjük, ami
defináljon egy függvényt, aminek a neve az lesz hogy nev
alsó aláhúzás printer, a függvény definiciónál a kulcsszó def,
majd space és a függvény neve, a függvény neve akárcsak a
változó neve lehet betű, szám, alsó aláhúzás, de nem kezdődhet
számmal a függvény neve, ugyanazok a szabályok, mint a változóknál.
A nev printernek a sima zárójelbe megadok egy bemeneti paramétert,
ami a nev_lista lesz"""
def nev_printer(nev_lista):
for nev in nev_lista:
print(nev)
"""tehát létre hoztunk egy függvényt, ami végső soron ugyanazt
csinálja, amit az előző kettő együtt, de ahelyett, hogy copy
paste-nénk ezt a for loopot, akárhányszor csak ki akarom íratni
a listában a benne lévő elemeket, már csak a függvényt a nev_printer -t
kell meghívnom. A függvény meghívása úgy történik, hogy invokáció:
nev_printer(nevek1) function invocation ezzek meghívjuk
nev_printer(nevek2)
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."""
"""hozzunk létre két változót, és egy egyszerű függvénnyel adjuk
össze, ami olyan függvény aminek nincs paramétere, nincs bemente.
A függvényeket a def szóval tudjuk definiálni."""
a = 10
b = 20
def osszeadas1():
print(a + b)
osszeadas1()
def osszeadas2(a, b, c = 4):
return a + b + c
print(osszeadas2(45, 25))
osszeg = osszeadas2(45, 25)
print(osszeg)
""" 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."""
def osszeadas3(*args):
return sum(args)
print(osszeadas3(10,65,65,65,65,45,87,65,65))
#ha változó számú paramétert akarok megadni, akko jelölhetem *- al
és arguments.
#az args helyett bármit megahdatok, akár azt is hogy beka
""" Arguments paraméterek, az összeadás3 függvény 0 vagy akár
több paraméteret is fogadhat. A return sum össze fogja adni az
összes számot, ami ott található, bármennyit bele írhatunk. """
def udvozelesek(*args):
koszones = "ennyi féle köszönés létezik"
for k in args:
koszones += k
koszones += ', '
#print(koszones)
print(koszones[0:len(koszones)-2])
udvozelesek(' szia', 'szevasz', 'hello', 'szervusz')
""" megadunk több üdvözlést, 4 példával, ha helyközt szeretnénk
a kiíratás során, akkor a helyközt hozzá kell fűzni, egy empty
stringet és egy vesszőt is hozzá fűzhetünk koszones += ', ' ezzel.
De ha így íratjuk ki, akkor a végén lesz még egy fölösleges vessző,
és egy szóköz. A length-et már használtuk listáknál, a len-t ha
stringgel használjuk, vissza adja, mennyi karakter van ebben a stringben,
ennek a segítségével a kiíratás végét megadhatjuk, hogy a vessző és
a szóköz már ne kerüljön kiírásra, vagyis a -2-vel. """
""" Szeretnénk printelni a neveket, de ami nagy betűs, azt hagyja úgy,
de de a kis betűket írja át nagy betűre. Erre alkalmas az upper
metódus, amelyet csak stringeken használhatunk: print(nev.upper());
Tegyük fel, hogy a slistába bekerül egy integer, akkor abban az
esetben hibát ad. Ezért for loopba bele rakhatunk egy isitance
parancsot, amely megkérdezi, hogy az adott név pl string típusú e,
ha igen akkor printelje ki nagybetűvel.
if isinstance(nev,str) de ha nem string típus mit tegyen? else:
print('nem string típus, hanem ' + str)
Enélkül hibát ad, ha number kerül a listára, viszont ez az
isinstatnce megkérdi, hogy az első iterációban a név string e,
ha igen akkor printelje ki, mégpedig nagy betűvel"""
nevek1 = ['Xena', 'Bozsi', 'Vica', 'Emi', 'Ildi', 'Zsuzsi', 'Evi', 10, True]
nevek2 = ['Pityu', 'Ati', 'Peti', 'Bence', 'Feri']
def nev_printer(nev_lista):
for nev in nev_lista:
if isinstance(nev, str):
print(nev.upper())
else:
print('nem string típus, hanem: ' + str(type(nev)))
nev_printer(nevek1)
nev_printer(nevek2)
"""isinstance(object, classinfo) állásban van
Igazzal tér vissza, ha object a classinfo argumentum egy példánya,
illetve ha annak egy közvetlen vagy inderikt leszármazottja.
A classinfo lehet objektumokat tartalmazó tuple is, ebben az
esetben igazat ad a függvény, ha valamelyik objektumra teljesül
az isinstance() reláció."""
Nincsenek megjegyzések:
Megjegyzés küldése