Kulcsszavas paraméter
Kulcsszavas paraméter
A kulcsszavas paraméterek egy módszer, amellyel függvényhívásoknál nevekkel lehet hivatkozni a paraméterekre, így nem kell azokat az eredeti sorrendjükben felsorolni. Az ilyen paramétereket nevekkel definiálják a függvény definíciójában és hívásukkor a neveket és az azokhoz tartozó értékeket egyenlőségjellel összekötve adjuk meg. Ez segíthet az olvashatóságon és a hibák elkerülésén, különösen ha a függvénynek sok paramétere van vagy nem egyértelmű, milyen sorrendben kellene megadni azokat.
Példák
def fgv10(**kwargs):
for key, value in kwargs.items():
print("%s == %s" %(key, value))
Az fgv10
nevű függvény a kulcsszavas paramétereket használja, amelyek a függvényhívás során tetszőleges mennyiségű kulcs-érték párt tartalmaznak. Ezeket a paramétereket egy szótárba csomagolja, majd a for
ciklus segítségével kiírja a kulcs-érték párokat a képernyőre.
fgv10(elso = 10, masodik = 20, harmadik = "alma")
elso == 10
masodik == 20
harmadik == alma
def fgv11(p1, *args, **kwargs):
print(f'p1 = {p1}')
for idx, val in enumerate(args):
print(f'{idx} - arg = {val}')
for key, val in kwargs.items():
print(f'{key} - {val}')
print("-"*10)
Az fgv11
egy függvény, amelynek van egy kötelező paramétere (p1), egy *args nevű tetszőleges számú pozícionális paramétere és egy **kwargs nevű tetszőleges számú kulcsszavas paramétere. A függvény kiírja a kötelező paramétert, az összes pozícionális paramétert (ha van ilyen) és az összes kulcsszavas paramétert (ha van ilyen).
fgv11(55)
fgv11(55, 44, 33)
fgv11(55, elso = 10, masodik = 'alma', harmadik = 30)
fgv11(55, 44, 33, elso = 10, masodik = 'alma', harmadik = 30)
p1 = 55
----------
p1 = 55
0 - arg = 44
1 - arg = 33
----------
p1 = 55
elso - 10
masodik - alma
harmadik - 30
----------
p1 = 55
0 - arg = 44
1 - arg = 33
elso - 10
masodik - alma
harmadik - 30
----------
Magánhangzó
Egy listán végigiterálva keresi a legtöbb magánhangzót tartalmazó napot. A napok
listában hétfőtől péntekig vannak megadva a napok nevei. A maganhangzok
függvény egy adott stringben megszámolja a magánhangzók számát, majd visszatér azzal a számmal. A program végigmegy a napok
listán, és azonosítja a legtöbb magánhangzót tartalmazó napot, majd ezt kiírja a képernyőre.
napok = ["hétfő", "kedd", "szerda", "csütörtök", "péntek"]
def maganhangzok(nap):
m = 'aáeéiíoóöőuúüű'
db = 0
for n in nap:
if n in m:
db += 1
return db
maxi = 0
for i in range(len(napok)):
if maganhangzok(napok[i])>maganhangzok(napok[maxi]):
maxi = i
print(f'A legtöbb magánhangó a {napok[maxi]}-ben van.')
A legtöbb magánhangó a csütörtök-ben van.