TG Telegram Group Link
Channel: Python dasturlash maktabi
Back to Bottom
Pythonda oʻzgaruvchan miqdorda argument berishda foydalaniladigan *args va **kwargs haqida dars tayyorlaymi?
Anonymous Poll
62%
Ha
26%
Yoʻq
12%
Befarqman
Python dasturlash maktabi
Testlarni guruhlarga ulashing! 🗓MUNDARIJA: --------------------------- ⭕️ 1-bo'lim “Asosiy tushunchalar” Ⓜ️ Python nima? Ⓜ️ Birinchi dastur Ⓜ️ Oddiy operatsiyalar Ⓜ️ Haqiqiy sonlar Ⓜ️ Matnlar (strings) Ⓜ️ O'zgaruvchilar (Variables) Ⓜ️ Ma'lumotlarni olish…
Ⓜ️ *args va ** kwargs

Funksiya chaqirilganda argumentlar soni teng bo'lmasa TypeError xatoligini qaytaradi.


def func(argument1, argument2, argument3):
print(argument1 * argument2 + argument3)


func(2, 6)

TypeError: func() missing 1 required positional argument: 'argument3'


Funksiyalarda o'zgaruvchan miqdordagi argumentlarni uzatish uchun maxsus belgilardan *, ** foydalaniladi.

*args (kalit-qiymatsiz argumentlar)
**kwargs (kalit-qiymatli argumentlar)

args va kwargs shunchaki argumentlar ro'yxatiga berilgan nom.Bu nomni boshqa istalgan nomga o'zgartirishingiz mumkin.
Masalan: *kalitsiz va **kalitli. Lekin dastur biror jamoa tomonidan yoziladigan bo'lsa yoki dastur kodi sotilishi rejalashtirilgan bo'lsa argumentlar roʻyxatini args va kwargs kabi nomlash maqsadga muvofiqdir.

Argsga misol:

def func(arg1, *arg):
print('Birinchi argument: ' + arg1)
for i in arg:
print('Boshqa argument: ' + i)


func('@pythonuz', '@js_uz', '@phpuz', '@pyqt5')


Birinchi argument: @pythonuz
Boshqa argument: @js_uz
Boshqa argument: @phpuz
Boshqa argument: @pyqt5


Kwargsga misol:


def func(**kwarg):
for x, y in kwarg.items():
print('Kalit: ' + x, ' Qiymat: ' + y)


func(python='django', javascript='react', php='laravel')

Kalit: python Qiymat: django
Kalit: javascript Qiymat: react
Kalit: php Qiymat: laravel

@pythonuz
Python dasturlash maktabi
Photo
Toʻgʻri javobni toping?
Anonymous Quiz
28%
A
23%
B
22%
C
27%
D
Python dasturlash maktabi
Photo
Toʻgʻri javobni toping?
Anonymous Quiz
29%
A
28%
B
22%
C
21%
D
Python dasturlash maktabi
Photo
Toʻgʻri javobni toping?
Anonymous Quiz
20%
A
33%
B
33%
C
14%
D
Python dasturlash maktabi
Photo
Toʻgʻri javobni toping?
Anonymous Quiz
25%
A
32%
B
30%
C
13%
D
Dasturchi kim va qancha maosh oladi?

Dasturchi mantiqiy qobilyati rivojlangan va institut rektoridan 10 barobar ko'p maosh oladigan shaxs.
Dasturchi maoshini quyidagi 👉linkga kirib ko'rishingiz mumkin.

Kanalga yangi tashrif buyurganlarga:
Python dasturlash tilini 0dan o'rganishni ushbu mavzudan 👈 boshlang.
Python dasturlash maktabi
Funksiyalar (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…
Ⓜ️ 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 orqa
li
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
var = lambda a: 'Ism: ' + a
print('Ism: Nematillo' == var('Nematillo'))
Anonymous Quiz
26%
True
29%
False
28%
TypeError
17%
SyntaxError
Testlarni dasturlashga oid guruhlarga ulashing.
Python dasturlash maktabi
Photo
Toʻgʻri javobni toping?
Anonymous Quiz
18%
8
32%
15
24%
75
26%
125
HTML Embed Code:
2025/07/06 23:53:45
Back to Top