Yangi #foydali maslahatlar ruknini boshlaymiz.
Qisqa satrlarda Pythondagi foydali funksiyalar, metodlar, modullar va boshqa narsalar haqida maslahat berib boramiz.
Bugun Pythonda matn tarkibini tekshirish uchun qulay metodlar bilan tanishamiz.
Misol uchun siz foydalanuvchidan ismini (yoki yoshini) kiritishni so'radingiz, rasmdagi metodlar yordamida kiritilgan matn tarkibini tekshirib olishingiz mumkin.
Masalan,
Huddi shu kabi,
Bu bizga dasturimizdagi xatoliklarning oldini olishga yordam beradi.
Qolgan metodlarni rasmda ko'rishingiz mumkin. Vaqtni zoe ketqizmasdan, o'rgangan bilmingizni sinab ko'ring.
Qisqa satrlarda Pythondagi foydali funksiyalar, metodlar, modullar va boshqa narsalar haqida maslahat berib boramiz.
Bugun Pythonda matn tarkibini tekshirish uchun qulay metodlar bilan tanishamiz.
Misol uchun siz foydalanuvchidan ismini (yoki yoshini) kiritishni so'radingiz, rasmdagi metodlar yordamida kiritilgan matn tarkibini tekshirib olishingiz mumkin.
Masalan,
.isalpha()
metodi kiritilgan matn faqatgina harflardan iborat bo'lsa True
aks holda esa False
qiymat qaytaradi. Huddi shu kabi,
.isdigit()
metodi yordamida, foydalanuvchi kiritgan matn son ekanligini tekshirib olishimiz mumkin.Bu bizga dasturimizdagi xatoliklarning oldini olishga yordam beradi.
Qolgan metodlarni rasmda ko'rishingiz mumkin. Vaqtni zoe ketqizmasdan, o'rgangan bilmingizni sinab ko'ring.
π1
Pythondagi #foydali modullardan biri bu difflib moduli.
Misol uchun,
Yoki,
Tushunarli bo'lishi uchun rasmdagi misollarga e'tibor qiling.
Yanayam tushunarli bo'lishi uchun esa zudlik bilan Pythonda difflib modulini sinab ko'ring.
difflib
moduli tarkibidagi funksiyalar yordamida matnlar, ro'yxatlar va hatto fayllar o'rtasida o'xshashlik (yoki farqni) osongina topishimiz mumkin.Misol uchun,
get_close_matches()
funksiyasi biror ro'yxat ichidan berilgan elementga o'xshash elementlar ro'yxatini qaytaradi. Bunda biz o'xshashlik nisbatini va o'xshash elementlar sonini ham berishimiz mumkin.Yoki,
SequenceMatcher
funksiyasini olaylik. Bu funksiya ikki ro'yxat (yoki matnni) solishtirib, ularning bir-biriga o'xshashlik koeffisientini qaytaradi (.ratio()
metodi)Tushunarli bo'lishi uchun rasmdagi misollarga e'tibor qiling.
Yanayam tushunarli bo'lishi uchun esa zudlik bilan Pythonda difflib modulini sinab ko'ring.
π3
Pythonda hech qanday vazifa bajarmaydigan, lekin juda ham #foydali pass operatori mavjud.
Odatda, bu operatordan bo'shliqlarni vaqtincha to'ldirishda foydalaniladi.
Misol uchun siz bir funksiyani yozishni o'ylab qo'ydingiz, funksiyaga nom berdingiz, lekin uning kodi (badani) tayyor emas. Agar funksiyani bo'sh qoldirsangiz, Python
Huddi shu kabi, klasslar yaratishda ham, klass ichidagi metodlarning nomini o'yladingiz, lekin kodi hali tayyor bo'lmasa, bo'shliqni vaqtinchaga
Bu operatordan tsikllar yoki shartlar badanini vaqtincha to'ldirib turishda ham foydalanish mumkin.
Odatda, bu operatordan bo'shliqlarni vaqtincha to'ldirishda foydalaniladi.
Misol uchun siz bir funksiyani yozishni o'ylab qo'ydingiz, funksiyaga nom berdingiz, lekin uning kodi (badani) tayyor emas. Agar funksiyani bo'sh qoldirsangiz, Python
IndentationError
xatoligini beradi. Mana shunday holatlarda pass
operatori sizning xaloskoringiz.Huddi shu kabi, klasslar yaratishda ham, klass ichidagi metodlarning nomini o'yladingiz, lekin kodi hali tayyor bo'lmasa, bo'shliqni vaqtinchaga
pass
bilan to'ldirib ketasiz.Bu operatordan tsikllar yoki shartlar badanini vaqtincha to'ldirib turishda ham foydalanish mumkin.
π6π1
Pythondagi #foydali xususiyatlardan yana biri bu bir qator kod bilan ro'yxat yaratish qulayligi (list comprehension).
Misol uchun sizga 1 dan N gacha sonlarning kvadrati kerak. Buni loop tsikli yordamida yozsangiz tahminan shunday kod bo'ladi:
Pythonda huddi shu natijaga 1 qator kod bilan erishish mumkin:
Vaqtni zoe ketkazmay, o'rgangan bilimingizni darhol Pythonda sinab ko'ring.
Misol uchun sizga 1 dan N gacha sonlarning kvadrati kerak. Buni loop tsikli yordamida yozsangiz tahminan shunday kod bo'ladi:
kv = []
for x in range(10):
kv.append(x**2)
Pythonda huddi shu natijaga 1 qator kod bilan erishish mumkin:
kv = [x**2 for x in range(10)]
Yoki, biror ro'yxatdan juft sonlarni ajratib olish talab qilinsa:sonlar = [12, 14, 8, 4, 9, 32, 21, 3, 5, 19]
juft_sonlar = [x for x in sonlar if x%2==0]
Ozgina kreativlik bilan, bu usul yordamida kodingizni ancha soddalashtirishingiz mumkin. Misol uchun, sonlar orasidan ma'lum shartlarga javob beruvchi sonlarni ajratib olish, matnlar orasidan ma'lum harfga boshlanuvchi yoki ma'lum uzunlikdagi matnlar ro'yxatini shakllantirish va hokazo.Vaqtni zoe ketkazmay, o'rgangan bilimingizni darhol Pythonda sinab ko'ring.
π28π₯2β€1
Pythondagi #foydali va dasturchilar tomonidan ko'p ishatiladigan funskyalardan biri bu
Bu funksiya dastur davomida noyob (takrorlanmaydigan) ID raqam talab qilinganda ishlatilishi mumkin. Misol uchun, sahifangizdan ro'yxatdan o'tgan har bir foydalanuvchi uchun yangi ID raqam yaratishda
uuid
moduli ichidagi uuid4()
funksiyasi.Bu funksiya dastur davomida noyob (takrorlanmaydigan) ID raqam talab qilinganda ishlatilishi mumkin. Misol uchun, sahifangizdan ro'yxatdan o'tgan har bir foydalanuvchi uchun yangi ID raqam yaratishda
uuid4()
funksiyasi juda asqotadi.uuid4()
funskiyasi 2ΒΉΒ²Β² (5 undesillion) kombinasiya orasidan tasodifiy, 128-bit uzunlikdagi son qaytaradi. Ya'ni bu shunchlaik uzunki (36 ta 0 lik son) qaytgan son insoniyat hayotida hech qachon takrorlanmasligiga ishonsak bo'ladi.π7
Deyarli barcha dasturlash tillarida bir nechta shartlarni tekshirish talab qilinganida
Pythonda esa bundan ham osonroq va tushunarliroq usuli bu
Bu ikki #foydali funksiya bir nechta shartlarni ro'yxat ko'rinishida qabul qiladi:
AND
va OR
operatorlaridan foydalanamiz:if age>6 AND age<18:yoki
if age<7 OR age>65:va hokazo.
Pythonda esa bundan ham osonroq va tushunarliroq usuli bu
all
va any
funksiyalaridan foydalanish.Bu ikki #foydali funksiya bir nechta shartlarni ro'yxat ko'rinishida qabul qiladi:
β
any()
funksiyasi ro'yxatdagi shartlardan birortasi bajarilsa TRUE
qiymatini qaytaradi (OR
operatori kabi):>>> any([True, False, True])
True
β
all()
funksiyasi esa ro'yxatdagi barcha shartlar bajarilsagina TRUE
qiymatini qaytaradi (AND
operatori kabi):>>> all([True, False, True])Keyingi safar sizdan bir nechta shartlarni tekshirish talab qilinganida bu ikki funksiyani tekshirib ko'ring.
False
π2
Pythondagi #foydali modullar bilan tanishishda davom etamiz.
Navbat
Bu moduldagi funksiyalar yordamida foydalanuvchi kiritgan ma'lumotlarning formatini tekshirishimiz mumkin.
Misol uchun, foydalanuvchidan email manzil kiritishni so'radik, kiritilgan manzil haqiqatdan ham email formatida (
Yoki, biror o'zgaruvchi veb manzil ekanligini
Agar berilgan oz'garuvchilar to'g'ri formatda bo'lsa funksiyalar
Validators moduli yordamida boshqa shartlarni ham tekshirishimiz mumkin, misol uchun kiritlgan son ma'lum oraliqda ekanini (
Batafsil ma'lumot uchun modulning sahifasiga o'ting. O'rgangan bilimingizni esa zudlik bilan Pythonda sinab ko'ring.
Navbat
validators
moduliga. Bu moduldagi funksiyalar yordamida foydalanuvchi kiritgan ma'lumotlarning formatini tekshirishimiz mumkin.
Misol uchun, foydalanuvchidan email manzil kiritishni so'radik, kiritilgan manzil haqiqatdan ham email formatida (
username@email.com
) ekanini tekshirish uchun validators.email()
funksiyasiga murojat qilamiz. Yoki, biror o'zgaruvchi veb manzil ekanligini
validators.domain()
yoki validators.url()
funksiyalari yordamida tekshirishimiz mumkin.Agar berilgan oz'garuvchilar to'g'ri formatda bo'lsa funksiyalar
True
qiymatini, aks holda esa ValidationError
xatoligini qaytaradi.Validators moduli yordamida boshqa shartlarni ham tekshirishimiz mumkin, misol uchun kiritlgan son ma'lum oraliqda ekanini (
validators.between()
) yoki berilgan matn ma'lum uzunlikda ekanini (validators.length()
) va hokazo.Batafsil ma'lumot uchun modulning sahifasiga o'ting. O'rgangan bilimingizni esa zudlik bilan Pythonda sinab ko'ring.
π3
Pythonda kompyuter ekranindan skrinshot olish uchun juda #foydali pyscreenshot moduli mavjud.
Modul ichidagi
Ekranning bir qismidan skirnshot olish uchun
Yangi narsa o'rgandingizmi, albatta amaliyotda qo'llab ko'ring.
Modul ichidagi
.grab()
metodi yordamida ekrandan to'liq yoki qisman skrinshot olish, .save()
metdoi yordamida esa skrinlarni faylga yozish mumkin.Ekranning bir qismidan skirnshot olish uchun
.grab()
metodiga bbox
parametri uzatiladi. Bu parametrda ekranning skrinshot olish kerak bo'lgan qismining koordinatalari ko'rsatiladi .grab(bbox=(x1,y1,x2,y2))
.Yangi narsa o'rgandingizmi, albatta amaliyotda qo'llab ko'ring.
π3
Tanishing, juda #foydali wikipedia moduli.
Bu modul yordamida Wikipedia sahifasidan qiziqarli ma'lumotlarni qidirib topishingiz va turli loyihalarda ishlatishingiz mumkin (masalan, Zakovat_bot π).
Modulni (boshqa modullar qatori)
Wikipedianing OΚ»zbek tilidagi sahifasiga murojat qilish uchun
Kerakli sahifani topish uchun esa
Wikipedia qaytargan sahifaning nomini
Modul orqali hatto sahifaning to'liq html faylini ham yuklab olishingiz mumkin (
Agar sahifa haqida yanayam ko'proq ma'lumot olmoqchi bo'lsangiz
Xullas, juda #foydali modul ekan. Ko'proq ma'lumot uchun modul dokumentasiyasi bilan tanishishingiz mumkin.
Bu modul yordamida Wikipedia sahifasidan qiziqarli ma'lumotlarni qidirib topishingiz va turli loyihalarda ishlatishingiz mumkin (masalan, Zakovat_bot π).
Modulni (boshqa modullar qatori)
pip install wikipedia
komandasi yordamida o'rnatasiz. Wikipedianing OΚ»zbek tilidagi sahifasiga murojat qilish uchun
wikipedia.set_lang('uz')
metodini chaqiring (aks holda, ma'lumotlar ingliz tilida qaytadi).Kerakli sahifani topish uchun esa
wikipedia.page()
metodiga murojat qilasiz.Wikipedia qaytargan sahifaning nomini
.original_title
, sahifaning qisqa mazmunini esa .summary
orqali ko'rishingiz mumkin.Modul orqali hatto sahifaning to'liq html faylini ham yuklab olishingiz mumkin (
.html()
metodi).Agar sahifa haqida yanayam ko'proq ma'lumot olmoqchi bo'lsangiz
wikipedia.WikipediaPage('OΚ»zbekiston')
metodidan foydalaning.Xullas, juda #foydali modul ekan. Ko'proq ma'lumot uchun modul dokumentasiyasi bilan tanishishingiz mumkin.
π1
Kechagi Python tashqi kutubxonasi haqidagi darsimiz uchun izlanish qilib, yana bir qiziqarli va #foydali modulga ko'zim tushdi.
Tanishing,
Savol ingliz tilida bo'lishi kerak. Javob StackOverflow sahifasidagi top natija asosida qaytariladi. Albatta, qurilma internetga ulangan bo'lishi kerak.
Rasmdagi misolda men Pythonda for tsiklini qanday qilib yozishni so'radim, va ko'rsatilgan javobni oldim. Aslida bundan ham murakkab so'rovlar yuborish mumkin.
Marhamat, siz ham urinib ko'ring. Ehitmol, kimdur
Tanishing,
howdoi
moduli. howdoi ingliz tilidan "Qanday qilib..." deb tarjima qilinadi. Bu modul yordamida siz istalgan dasturlash tiliga oid savollarga javob olishingiz mumkin.Savol ingliz tilida bo'lishi kerak. Javob StackOverflow sahifasidagi top natija asosida qaytariladi. Albatta, qurilma internetga ulangan bo'lishi kerak.
Rasmdagi misolda men Pythonda for tsiklini qanday qilib yozishni so'radim, va ko'rsatilgan javobni oldim. Aslida bundan ham murakkab so'rovlar yuborish mumkin.
Marhamat, siz ham urinib ko'ring. Ehitmol, kimdur
howdoi
va googletrans
asosida yangi bot ham yaratar (faqat Kirill-Lotin (Eng-Uz) bot qilaverasilarmi π).π3
Pythondagi #foydali paketlar bilan tanishishda davom etamiz. Quyidagi maqolada dasturimiz uchun minglab soxta foydalanuvchilar yaratishni oΚ»rganamiz.
LINK: https://mohirdev.uz/faker/
LINK: https://mohirdev.uz/faker/
π1