2020. október 13., kedd

Függvények - Python

 """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."""
= 10
= 20
def osszeadas1():
    print(+ 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

12B 2024.04.16. helyettesítés

 Feladatokat ezen a linken találjátok: http://history.itwebguide.nhely.hu/tori_teszt.html az eredményről a képernyőképet kérem :D