Funksiya parametrlari


Download 7.14 Kb.
Sana10.11.2023
Hajmi7.14 Kb.
#1762106
Bog'liq
Moslashuvchan funksiya


Moslashuvchan funksiya.

Reja:

1. *args usuli
2. *kwargs usuli
3. lambda() funksiya

Funksiya parametrlari


AMALIYOT
  • Foydanaluvchidan ismi, familiyasi, tug'ilgan yili, tug'ilgan joyi, email manzili va telefon raqamini qabul qilib, lug'at ko'rinishida qaytaruvchi funksiya yozing. Lug'atda foydalanuvchu yoshi ham bo'lsin. Ba'zi argumentlarni kiritishni ixtiyoriy qiling (masalan, tel.raqam, el.manzil)
  • Uchta son qabul qilib, ulardan eng kattasini qaytaruvchi funksiya yozing
  • Berilgan oraliqdagi tub sonlar ro'yxatini qaytaruvchi funksiya yozing (tub sonlar —faqat birga va o'ziga qoldiqsiz bo'linuvchi, 1 dan katta musbat sonlar)

Funksiya parametrlari


AMALIYOT
  • Matnlardan iborat ro'yxat qabul qilib, ro'yxatdagi har bir matnning birinchi harfini katta harfga o'zgatiruvchi funksiya yozing.

Funksiya parametrlari


MOSLASHUVCHAN FUNKSIYA (`*args`, `**kwargs`) `*args` va `**kwargs` bilan tanishamiz
MOSLASHUVCHAN FUNKSIYA
Agar funksiyangiz bir nechta argument qabul qilishi kerak bo'lsa-yu, lekin siz argumentlar sonini aniq bilmasangiz, Pythonda istalgancha qiymat qabul qiluvchi funksiya yaratish imkoniyati bor.
*args USULI
Agar funksiya qabul qiladigan parametrlar soni noaniq bo'lsa, va parametrlar yagona qiymatlar ko'rinishida uzatilsa, funksiya yaratishda argumentdan avval
yulduzcha qo'yiladi (*arguments). Quyidagi misolni ko'raylik. summa()nomli funksiyamiz istalgancha sonlarni qabul qilib oladi, va ularning yi'gindisi hisoblaydi:

Funksiya parametrlari


print(summa(1,2,3,4,5))

def summa(*sonlar):
"""Kiritilgan sonlar yig'indisini hisoblaydigan funksiya""" yigindi = 0
for son in sonlar:
yigindi += son
return yigindi
Bu funksiyani istalgancha parametr bilan chaqirish mumkin:
print(summa(1,2))

Funksiya parametrlari


26
*args usulida, bacha uzatilgan parametrlar (bir dona bo'lsa ham) funksiya ichida o'zgarmas ro'yxatga (tuple) joylanadi. Bundan kelib chiqib, yuqoridagi funksiyamizni yanada soddalashtirib yozishimiz mumkin:
Agar funksiya bir nechta argument qabul qilsa, `*args` argument doim oxirida yoziladi:
def summa(x,y,*sonlar):
"""Kiritilgan sonlar yig'indisini hisoblaydigan funksiya""" return x+y+sum(sonlar)
Yuqoridagi funksiyamiz kamida 2 ta parametr qabul qiladi (x va y) va birinchi ikki argumentlar majburiy argumentlardir.

Funksiya parametrlari



**kwargs USULI
Agar funksiyaga kalit so'z - qiymat ko'rinishidagi argumentlarni uzatish talab qilinsa, va bunday parametrlar soni noma'lum bo'lsa, argument oldidan ikkita yulduzcha qo'yiladi (**kwargs).
**kwargs — keyword arguments (kalit so'zli argumentlar)
def avto_info(kompaniya,model,**malumotlar):
"""Avto haqidagi ma'lumotlarni lug'at ko'rinishdia qaytaruvchi funksiya""" malumotlar['kompaniya']=kompaniya
malumotlar['model']=model
return malumotlar

Funksiya parametrlari Yuqoridagi funksiyamiz kompaniya va model degan ikki qiymatni qabul qiladi, undan keyin esa funksiyaga istalgancha parametr uzatish mumkin. Bunday funksiyaga parametrlar kalitso'z=qiymat ko'rinishida uzatiladi. Funksiya ichida avval foydalanuvchi kiritgan qo'shimcha qiymatlardan iborat malumotlar deb nomlangan lug'at shakllantiriladi. Undan keyin esa majburiy parametrlarni lug'atga qo'shamiz.



avto1 = avto_info("GM", "malibu", rang='qora', yil=2018) avto2 = avto_info("Kia", "K5", rang='qizil', narh=35000)
print(avto2)

Lambda funksiya Lambda funksiyasi kichik anonim funksiya hisoblanadi. Unda istalgancha argument qatnashishi mumkin va barchasi bir ifodada yoziladi. Hozir kiritilgan sonni 10 ga oshiradigan lambda funksiya hosil qilamiz:



x = lambda a: a + 10
print(x(2)) #12

Lambda funksiya Endi ikki va uch argumetli lambda funksiyalarini tuzami. Avvalgisi ikki sonning o’zaro ko’paytmasini, keyingisi esa barcha sonlar yig’indisini topadi.



x = lambda a, b : a*b
print(x(5,6)) #30
y = lambda a, b, c : a+b+c
print(y(7,9,5)) #21

Nega lambda funksiya ishlatamiz ? Lambda fuksiyalarni funksiya ichida boshqa bir anonim funksiya sifatida ishlatish qulay. Masalan, bir argumentli funksiya bor va uning argumenti noma’lum bir songa ko’payadi. Shu funksiyani lambda funksiya yordamida istalgan sonni ikkilantiradigan va uchlantiradiga funksiyaga aylantiramiz.



def myfunc(n):
return lambda a: a*n
ikkilantir = myfunc(2)
uchlantir = myfunc(3)

print(ikkilantir(5)) #10
print(uchlantir(5)) #15

Amaliyot



E’tiboringiz uchun raxmat!


Download 7.14 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling