Channel: Python dasturlash maktabi
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.
Funksiyalarda o'zgaruvchan miqdordagi argumentlarni uzatish uchun maxsus belgilardan *, ** foydalaniladi.
args va kwargs shunchaki argumentlar ro'yxatiga berilgan nom.Bu nomni boshqa istalgan nomga o'zgartirishingiz mumkin.
Masalan:
Argsga misol:
Boshqa argument: @js_uz
Boshqa argument: @phpuz
Boshqa argument: @pyqt5
Kwargsga misol:
Kalit: javascript Qiymat: react
Kalit: php Qiymat: laravel
@pythonuz
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: @pythonuzBoshqa 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: djangoKalit: javascript Qiymat: react
Kalit: php Qiymat: laravel
@pythonuz
Telegram
Python dasturlash maktabi
Ⓜ️ To'plam funksiyalari va uslublari
t1 = {1, 2, 3, 'a', 'b'}
t2 = {7, 8, 9, 'w', 'z'}
t3 = {'a', 'b'}
To'plamlar bilan bajariladigan operatsiyalar.(To'plam o'zgarmaydi to'plamdan ma'lumotlar o'zgartirib olinadi)
1-to'plam va 2-to'plamda o'xshash elelmentlar…
t1 = {1, 2, 3, 'a', 'b'}
t2 = {7, 8, 9, 'w', 'z'}
t3 = {'a', 'b'}
To'plamlar bilan bajariladigan operatsiyalar.(To'plam o'zgarmaydi to'plamdan ma'lumotlar o'zgartirib olinadi)
1-to'plam va 2-to'plamda o'xshash elelmentlar…
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.
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.
Argumentga 1 sonini qo'shuvchi lambda funksiyani 2 xil ko'rinishda ishga tushirib ko'ramiz.
1) O'zgaruvchiga lambda berish orqali
2) Funksiya va uning argumentini alohida qavsga olish orqali
Nomsiz funksiyalar o'rni oddiy funksiyalar ichida ishlatilganda seziladi.
33
Lambda ichida shartlarni ham tekshirishimiz mumkin.Sonlarni juft yoki toq ekanini aniqlovchi lambda funksiyasini yozamiz.
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):pythonuz nomli oddiy funksiya x argumentini o'ziga oldi va uni qaytardi.Shu funksiyani lambda ko'rinishi
return x
lambda x: x3 ta argumentdan iborat lambda funksiyasiga namuna:
x = lambda a, b, c: a * b + c26
print(x(4, 5, 6))
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 + 14
print(pythonuz(3))
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):22
return lambda a: a * n
nomsiz = oddiy(2)
print(nomsiz(11))
def myfunc(n):22
return lambda a : a * n
mydoubler = myfunc(2)
mytripler = myfunc(3)
print(mydoubler(11))
print(mytripler(11))
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))Quyida 1, 2 va 3 sonlar yig'indisini hisoblovchi lambda funksiyalarni har xil uslubda yozib ishga tushiramiz.
juft son
(lambda x, y, z: x + y + z)(1, 2, 3)@pythonuz
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
var = lambda a: 'Ism: ' + a
print('Ism: Nematillo' == var('Nematillo'))
print('Ism: Nematillo' == var('Nematillo'))
Anonymous Quiz
26%
True
29%
False
28%
TypeError
17%
SyntaxError
HTML Embed Code: