Print("Assalom alaykum")



Download 10,21 Mb.
bet55/58
Sana28.06.2022
Hajmi10,21 Mb.
#713027
1   ...   50   51   52   53   54   55   56   57   58
Bog'liq
Mohirdev.uz...

pprint - CHIROYLI PRINT


pprint 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.
In [ ]:
from pprint import pprint
import json


filename = 'bemor.json'
with open(filename) as f:
bemor = json.load(f)


print(bemor)
In [ ]:
{'ism': 'Alijon Valiyev', 'yosh': 30, 'oila': True, 'farzandlar': ['Ahmad', 'Bonu'], 'allergiya': None, 'dorilar': [{'nomi': 'Analgin', 'miqdori': 0.5}, {'nomi': 'Panadol', 'miqdori': 1.2}]}
Navbat pprint() funksiyasiga:
In [ ]:
pprint(bemor)
In [ ]:
{'allergiya': None,
'dorilar': [{'miqdori': 0.5, 'nomi': 'Analgin'},
{'miqdori': 1.2, 'nomi': 'Panadol'}],
'farzandlar': ['Ahmad', 'Bonu'],
'ism': 'Alijon Valiyev',
'oila': True,
'yosh': 30}

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 (рр),5harfdaniboratso′zlarniqidiradi(т...р),5harfdaniboratso′zlarniqidiradi(т...р).
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.
In [39]:
import re


word1 = "темир"
word2 = "томир"
word3 = "тулпор"


andoza = "^т...р"


print(re.match(andoza, word1))

In [40]:
print(re.match(andoza, word2))

In [41]:
print(re.match(andoza, word3))
None
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.
In [ ]:
from uzwords import words
andoza = "^т...р$"


matches = []
for word in words:
if re.match(andoza,word):
matches.append(word)
print(matches)
In [ ]:
['табар', 'табор', 'тавир', 'тайёр', 'татар', 'татир', 'тахир', 'тақир', 'театр', 'тембр', 'темир', 'темур', 'тенор', 'тикер', 'тихир', 'товар', 'товор', 'тожир', 'томир', 'тонер', 'тоҳир', 'триер', 'тумор', 'тўпар', 'тўпир']
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.
In [43]:
matn = """Maqolalar 2020-yilning 20-martiga qadar rtmkonferensiya2021@mail.ru elektron pochtasida qabul qilinadi.
Quyidagi yo'nalishdagi maqolalar qabul qilinadi:
👉 Aniq va tabiiy fanlarni zamonaviy pedagogik texnologiyalar asosida o‘qitish metodikasi.
👉 Umumta’lim fanlarini o‘qitishda STEAM yondashuvning o’rni va ahamiyati. """


andoza = '[^@ \t\r\n]+@[^@ \t\r\n]+\.[^@ \t\r\n]+'
email = re.findall(andoza,matn)
print(email)
['rtmkonferensiya2021@mail.ru']
Andoza yordamida foydalanuvchi kiritgan qiymatlarni ham ma'lum shartlarga javob berishini tekshirib olishimiz mumkin:
In [44]:
# Kuchli parolni tekshirish
# Quyidagi andoza ham ihateregex.io sahifasidan olindi
andoza = '^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$'
msg = "Yangi parol kiriting"
msg += '(kamida 8 belgidan iborat, kamida 1 ta lotin bosh harf, 1 ta kichik harf, '
msg += '1 ta son va 1 ta maxsus belgi boʻlishi kerak): '


while True:
password = input(msg)
if re.match(andoza,password):
print("Maxfiy so'z qabul qilindi")
break
else:
print("Maxfiy so'z talabga javob bermadi")
Yangi parol kiriting(kamida 8 belgidan iborat, kamida 1 ta lotin bosh harf, 1 ta kichik harf, 1 ta son va 1 ta maxsus belgi boʻlishi kerak): salomDunyo123 Maxfiy so'z talabga javob bermadi Yangi parol kiriting(kamida 8 belgidan iborat, kamida 1 ta lotin bosh harf, 1 ta kichik harf, 1 ta son va 1 ta maxsus belgi boʻlishi kerak): salomDunyo123#$ Maxfiy so'z qabul qilindi

Download 10,21 Mb.

Do'stlaringiz bilan baham:
1   ...   50   51   52   53   54   55   56   57   58




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish