Python dasturlash maktabi
ReplyFunksiyalar (vazifalar)
Oldindan belgilangan funksiyalarni ishlatishdan tashqari, def operatoridan foydalanib o'zingizning funksiyalaringizni yaratishingiz mumkin.
Funksiya xuddi o'zgaruvchilarga o'xshab oldin yoziladi va keyin chaqiriladi. Funksiyadagi kod bloklari funksiya chaqirilgandagina bajarLink
click to show
click to show
Ⓜ️ lambda funksiyasi
Python lambdalari kichik, nomsiz funktsiyalar bo'lib, oddiy Python funksiyalariga qaraganda imkoniyatlari kam, ammo ixchamroq sintaksisga ega.Lambda funksiyalari istalgan miqdordagi argumentlarga ega bo'lishi mumkin, ammo funksiya faqat bitta ifodani qaytaradi.
def pythonuz(x):
return x
pythonuz nomli oddiy funksiya x argumentini o'ziga oldi va uni qaytardi.Shu funksiyani lambda ko'rinishi
lambda x: x
3 ta argumentdan iborat lambda funksiyasiga namuna:
x = lambda a, b, c: a * b + c
print(x(4, 5, 6))
26
Argumentga 1 sonini qo'shuvchi lambda funksiyani 2 xil ko'rinishda ishga tushirib ko'ramiz.
1) O'zgaruvchiga lambda berish orqali
pythonuz = lambda x: x + 1
print(pythonuz(3))
4
2) Funksiya va uning argumentini alohida qavsga olish orqali
print((lambda x: x + 1)(3))
4
Nomsiz funksiyalar o'rni oddiy funksiyalar ichida ishlatilganda seziladi.
def oddiy(n):
return lambda a: a * n
nomsiz = oddiy(2)
print(nomsiz(11))
22
def myfunc(n):
return lambda a : a * n
mydoubler = myfunc(2)
mytripler = myfunc(3)
print(mydoubler(11))
print(mytripler(11))
22
33
Lambda ichida shartlarni ham tekshirishimiz mumkin.Sonlarni juft yoki toq ekanini aniqlovchi lambda funksiyasini yozamiz.
print((lambda x: (x % 2 and 'toq son' or 'juft son'))(4))
juft son
Quyida 1, 2 va 3 sonlar yig'indisini hisoblovchi lambda funksiyalarni har xil uslubda yozib ishga tushiramiz.
(lambda x, y, z: x + y + z)(1, 2, 3)
6
(lambda x, y, z=3: x + y + z)(1, 2)
6
(lambda x, y, z=3: x + y + z)(1, y=2)
6
(lambda *args: sum(args))(1,2,3)
6
(lambda **kwargs: sum(kwargs.values()))(one=1, two=2, three=3)
6
(lambda x, *, y=0, z=0: x + y + z)(1, y=2, z=3)
6
@pythonuz
30 · 6.9K ·