#38 PYTHON STANDART KUTUBXONASI
Pythondagi foydali modullar bilan tanishamiz.
KIRISH
Python dasturlash tili yildan-yilga ommalashib bormoqda. Bunga birinchi navbatda Pythonning sodda va tushunarli sintaksi sabab bo'lsa, ikkinchi va ehtimol eng ko'zga ko'ringan sabab bu Pythonning keng qamrovli kutubxonalar to'plamidir. Ushbu darsimizda Pytyon kutubxonasidagi ba'zi muhim modullar bilan tanishamiz. Standart kutubxonanig to'liq tarkibi bilan Python rasmiy sahifasida tanishishingiz mumkin.
Kutubxona bu boshqalar tarafidan yozilgan tayyor funksiyalar va obyektlar to'plami.
datetime
— SANA VA VAQT
datetime
— SANA VA VAQTUshbu modul yordamida Pythonda sanalar bilan ishlashimiz mumkin. Moduldan foydalanishdan avval uni import qilamiz. Har gal moduldan foydalanishda datetime
deb qayta yozmaslik uchun, import qilishda modulga dt
nomini beramiz.
Hozirgi vaqt va sanani koʻrish uchun datetime.now()
moduliga murojat qilamiz:
Natija: 2021-03-09 12:12:19.894899
Kurib turganingizdek, natija yil, oy, kun soat, minut, sekund va millisekund koʻrinishida chiqdi. Biz bu qiymatlardan istaganimzni maxsus metodlar yordamida ajratib olishimiz mumkin:
Natija:
Agar bugungi kunning sanasi talab qilinsa datetime
moduli ichidagi date.today()
moduliga murojat qilamiz.
Natija: Bugungi sana: 2021-03-09
Agar biror sanani qoʻlda kiritish talab qilinsa .date() metodiga kerakli sanani (yil, oy, kun) koʻrinishida kiritamiz.
Natija: Ertangi sana: 2021-03-10
Faqatgina vaqt bilan ishlash uchun .datetime.now().time()
metodiga murojat qilishimiz mumkin:
Natija: Hozir soat: 12:21:54.529788
Istalgan vaqtni qoʻlda kiritish uchun esa .time() metodiga kerakli vaqtni (soat, minut, sekund) koʻrinishida beramiz:
Ayirish operatori yordamida sanalalar va vaqtlar orasidagi farqni hisoblashimiz mumkin:
Natija: Ramazonga 35 kun qoldi
Huddi shu kabi ikki vaqt oraligʻini sekundlarda yoki soatlarda ham koʻrishimiz mumkin:
Natija:
Yuqorida sanalar AQSh standartiga koʻra, yil-oy-kun koʻrinishida chiqayapti. Sanani oʻzimizga moslab chiqarish uchun .strftime()
metodini chaqiramiz, va sanani oʻzimizga qulay formatda chiqaramiz.
Natija:
math
—MATEMATIK FUNKSIYALAR
math
—MATEMATIK FUNKSIYALARBu modul oʻz ichida matematikaga oid turli funksilayar va oʻzgaruvchilarni saqlaydi. Keling, ularning baʻzilari bilan tanishamiz.
ning qiymati
Natija: PI ning qiymati: 3.141592653589793
e — natural logarifm asosi
Natija: e ning qiymati: 2.718281828459045
Trigonometriya
Modul tarkibida deyarli barcha trigonometrik funksiyalar mavjud (cos, sin, tangens, arccos, va hokazo)
Shunigdek degrees va radians metodlari yordamida burchakdan radianga va aksincha konvertasiya qilishimiz ham mumkin:
LOGARIFMLAR
log()
va log10()
funksiyalari yordamida natural va o'n asosli logarifmlarni hisoblash mumkin:
SONLARNI YAXLITLASH
Sonlarni eng yaxlitlash uchun Pythonda maxsus round() funksiyasi mavjud. Bunga qo'shimcha ravishda, math moduli ichidagi ceil() funksiyasi yordamida berilgan o'nlik sonni keyingi butun songa, floor() yordamida esa quyi butun songa yaqinlashtirish mumkin:
Natija:
ILDIZ VA DARAJA
Berilgan sonning kvadrat ildizini hisoblash uchun sqrt(), sonni darajaga oshirish uchun esa pow() funksiyalariga murojat qilamiz:
math
moduli tarkibida boshqa funksiyalar ham mavjud. Yuqorida biz ularning ba'zilari bilan tanishdik. Bu modul asosan butun va oʻnlik sonlar bilan ishlashga moʻljallangan. Kompleks sonlar bilan ishlash uchun cmath
moduliga murojat qilishingiz mumkin.
pprint
- CHIROYLI PRINT
pprint
- CHIROYLI PRINTpprint
moduli yordamida turli o'zgaruvchilarni chiroyli ko'rinishda konsolga chiqarishimiz mumkin. Bu bizga uzun lug'atlar, JSON fayllar yoki matnlar bilan ishlashda juda asqotadi.
Misol uchun, avvalgi darslarimizning birida yaratgan bemor.json
faylini ochamiz va avval print()
keyin pprint()
yordamida konsolga chiqaramiz.
Natija:
Navbat pprint()
funksiyasiga:
Natija:
RegEx - ANDOZA YORDAMIDA MATN IZLASH
Pythondagi juda foydali modullardan biri bu re
(regular expressions) moduli. Bu modul yordamida biror matn berilgan andozaga tushish, tushmalsigini tekshrib ko'rishimiz mumkin. Yoki berilgan andoza asosida matnlar orasidan kerakli matnlarni ajratib olish mumkin.
Keling boshlanishiga sodda misol ko'ramiz. Quyida biz 3 ta so'z va so'zlarni tekshirish uchun andoza yaratdik. Quyidagi andozamiz т harfidan boshlanuvchi (^т
), р harfiga tugovchi (р$
), 5 harfdan iborat so'zlarni qidiradi (^т...р$
).
Avvaliga andozalarni tushunish biroz qiyin bo'lishi mumkin, lekin vaqt o'tishi bilan andoza qanday ishlashini tushunib olasiz deb umid qilamiz.
So'zlarni andozaga solishtirish uchun re.match()
funksiyasidan foydalanamiz. Agar tekshirgan so'zimiz andozaga mosh tushsa, re.match()
metodi so'zni o'zini qaytaradi, aks holda None
qiymatini qaytaradi.
Natija:
Natijadan ko'rishimiz mumkin, word1
va word2
o'zgaruvchilari anfozaga tushdi, word3
esa tushmadi.
Keling endi, so'z to'pish o'yinida ishlatilgan soz'lar ro'yxatidan foydalanamiz, va ro'yxatdan biz bergan andozaga tushuvchi so'zlarni ajratib olamiz.
Natija:
Andozalar biror matnda biz uchun kerakli maʻlumotlarni ajratib olish uchun juda qulay. Masalan, Telegram orqali yuborilgan habardan email manzilini yoki telefon raqamini ajratib olish uchun maxsus andoza yozishmiz mumkin. ihateregex.io sahifasidan esa loyihangiz uchun tayyor andozalarni topishingiz mumkin.
Keling, yuqoridagi andoza asosida biror matndan email manzilini ajratib olamiz. Buning uchun re.findall()
funksiyasidan foydalanamiz.
Natija: ['rtmkonferensiya2021@mail.ru']
Andoza yordamida foydalanuvchi kiritgan qiymatlarni ham ma'lum shartlarga javob berishini tekshirib olishimiz mumkin:
RegEx juda katta mavzu boʻlgani uchun, kelajakda bu haqida alohida dars qilamiz.
AMALIYOT
Bugungi sanadan boshlab 2 hafta farq bilan 10 ta sanani konsolga chiqaring
Ramazon va qurbon hayitigacha qolgan kunlarni konsolga chiqaring
Tug'ilgan kuningizdan bugungi sanagacha qancha yil, oy, kun o'tganini qaytaruvchi funksiya yozing
Foydalanuvchidan telefon raqamini kiritishni so'rang. Kiritlgan qiymatni andoza yordamida tekshiring
Berilgan matndan veb sahifa manzilini ajratib olyuvchi funksiya yozing. Quyidagi matndan namuna sifatida foydalanishingiz mumkin:
Assalom alaykum hurmatli do'stlar. Navbatdagi darsimiz YouTubega yuklandi: https://youtu.be/vsxJPRLXpgI
Ushbu darsimizda unittest moduli yordamida klasslarning xususiyatlar va metodlarini tekshiruvchi dastur yozishni o'rganamiz. Bugungi dars manzili: https://python.sariq.dev/testing/37-klass-test
KODLAR
Last updated