Ранее я делал серию постов про битовые операторы.
Вот вам ещё один наглядный пример как это используется в Python в модуле re.
Чтобы указать флаг для компилятора нам надо указать его после передаваемой строки. Например, добавляем флаг для игнорирования переноса строки.
pattern = re.compile(r"(\w+)+")
words = pattern.search(text, re.DOTALL)
А как указать несколько флагов? Ведь явно будут ситуации когда нам потребуется больше одного. Кто читал посты по битовые операторы уже понял как.
pattern.search(text, re.DOTALL | re.VERBOSE)
А теперь смотрим исходники, что находится в этих атрибутах?
Не удивительно, степени двойки. Почему? Потому что каждое следующее значение это сдвиг единицы влево.
>>> for n in [1, 2, 4, 8, 16, 32, 64, 128, 256]:
>>>
print(bin(n))
0b1
0b10
0b100
0b1000
0b10000
0b100000
0b1000000
0b10000000
0b100000000
Чтобы было понятней, давайте напишем тоже самое но иначе, добавим ведущие нули:
000000001
000000010
000000100
000001000
000010000
000100000
001000000
010000000
100000000
Не понятно что тут происходит? Читай три поста про битовые операторы начиная с этого ➡️https://t.me/pythonotes/45
В общем, это пример применения побитовых операций в самом Python.
Теперь вы знаете Python еще немного лучше)
#tricks#regex#libs
#PROBLEM
Dunyoda adolatsizlik bor – ba’zilar ko‘p narsaga ega, boshqalar esa hech narsasiz...
#SOLUTION
Odamlar bir-biriga yordam berishi kerak – agar hamma faqat o‘zini o‘ylasa, hayot yomonlashadi. Faqat birlikda adolat bo‘lishi mumkin.
Xulosa:
Ba’zilarning ko‘p narsaga ega bo‘lishi faqat boylik bilan emas, balki salohiyat, imkoniyat, nasab, sog‘liq, yashash joyi kabi ustun jihatlar bilan farqlanadi. Hech narsasiz deganda esa, sog‘liq muammolari, nizolar, ochlik, qashshoqlik, ilmsizlik va boshqa imkonsiz holatlar tushuniladi.
Yechim:
Odamlar bir-biriga yordam berishi kerak, ya’ni bilgan bilmaganga o‘rgatishi, to‘q ochni to‘ydirishi, imkonli inson imkonisizga ko‘mak berishi lozim. Ya’ni, biz qanday vaziyatda bo‘lmaylik, bizdan pastdagilarga yordam berishimiz, o‘z ustimizda ishlashdan to‘xtamasligimiz va shukr qilishimiz kerak.
@Azamatjon_design#eslatmalar#problem_solution
𝐍𝐞𝐠𝐚 𝐤𝐨'𝐩 𝐡𝐨𝐥𝐥𝐚𝐫𝐝𝐚 𝐲𝐞𝐜𝐡𝐢𝐦𝐥𝐚𝐫 𝐯𝐚𝐪𝐭𝐢𝐧𝐜𝐡𝐚𝐥𝐢𝐤 𝐲𝐨𝐤𝐢 𝐱𝐮𝐬𝐮𝐬𝐢𝐲 𝐲𝐨𝐤𝐢 𝐲𝐮𝐳𝐚𝐤𝐢 𝐛𝐨'𝐥𝐚𝐝𝐢?
Chunki odatda muammo paydo bo‘lishi bilan darhol yechim izlashga kirishiladi. Natijada esa muammo to‘liq tushunilmasdan, vaqtinchalik yoki yuzaki qarorlar qabul qilinadi.
Tajribali mutahasislar esa, eng avvalo muammoning asl mohiyatini tushunishga harakat qiladi. Muammo nimadan iborat, qayerda paydo bo‘lgan, nimasi aniq, nimasi noaniq — shu savollarga javob topmasdan keyingi bosqichga o‘tmaydi. Chunki aniq ifodalanmagan muammo hech qachon to‘g‘ri yechimga ega bo‘lmaydi.
Batafsil o'rganilgandan keyin — mavjud tajribani o‘rganish. Oldin bu masalaga kimlar duch kelgan, qanday yondashuvlar bo‘lgan, qaysi usullar ishlagan yoki ishlamagan. Bu bosqich vaqtni tejaydi va takroriy xatolardan saqlaydi. Siz birinchi bo‘lib bu muammoga duch kelayotgan bo‘lishingiz kamdan-kam holat.
Shundan keyingina haqiqiy tahlil boshlanadi. Mavjud yechimlar qayerda to‘xtab qolgan, qaysi joylar e’tibordan chetda qolgan, qaysi taxminlar tekshirilmagan — aynan shu bo‘shliqlarni topish eng muhim qadamdir. Yechim ko‘pincha hamma ko‘rgan joyda emas, aynan shu bo‘shliqlarda yashiringan bo‘ladi.
Topilgan fikrlar keyin modelga aylantiriladi. Bu diagramma, jarayon xaritasi, arxitektura yoki oddiy mantiqiy ketma-ketlik bo‘lishi mumkin. Model fikrni tartibga soladi, noaniqliklarni ochib beradi va keyingi qarorlar uchun asos yaratadi.
Model tayyor bo‘lgach, u real sharoitda sinovdan o‘tkaziladi. Bu bosqichda xatolar chiqadi, zaif joylar ko‘rinadi va aynan shu orqali yechim takomillashadi. Mukammal model degan narsa yo‘q, lekin ishlaydigan va o‘zini oqlagan model bo‘ladi.
Faqat barcha shu bosqichlardan o‘tgandan keyingina yakuniy yechim paydo bo‘ladi. Bu shunchaki g‘oya emas, balki tekshirilgan, asoslangan va mas’uliyat bilan qabul qilingan qarordir.
Agar bir muammo sizni qayta-qayta qiynayotgan bo‘lsa, ehtimol muammo masalaning murakkabligida emas, balki siz o‘tkazib yuborgan qaysidur bosqichda bo'lishi mumkin.
Kuchli mutaxassislar shoshilmaydi.
Siz muammoga yechim ishlab chiqishda qanday yondashuv qilasiz?
#problem#problem_solving#skill#phd#ios#developer
Mukhriddinbek Samidov
🔗YouTube | Instagram | LinkedIn | Telegram | Medium