Deutsch
Telegram

Beitrag یکی از کاربرد های bitwise operator ها:

27. März 2023
D
DailyProjects
یکی از کاربرد های bitwise operator ها: سلام. اگرچه توی زبان های سطح پایین تر استفاده از bitwise operator ها خیلی مرسومه، توی پایتون کمتر نیاز میشه تا برای حل مشکلمون بریم سراغشون و عموما از جایگزین های high-level تری استفاده میکنیم. ولی دونستن اینکه چیکار میکنن بعضی جاها میتونه مفید باشه. فرض کنید میخوایم با یک regex ساده یه عبارتی رو match کنیم: import re print(re.search("ABC.", "abc\n")) مچ نمیشن! حالا کافیه به عنوان flag بهش عدد ۱۸ رو بدیم: print(re.search("ABC.", "abc\n", flags=18)) مچ شد! درواقع با دادن عدد ۱۸ بهش گفتیم که case-insensitive باش و new line character ها رو هم با نقطه بگیر. ولی چطور از عدد ۱۸ این رو فهمید؟ موضوع اینجاست که ما یک سری فلگ از پیش تعریف شده داریم که توان های عدد ۲ هستن. اگه یه نگاه بشون بندازیم: ‌ TEMPLATE = 1 -> 00000001 IGNORECASE = 2 -> 00000010 LOCALE = 4 -> 00000100 MULTILINE = 8 -> 00001000 DOTALL = 16 -> 00010000 ما درواقع IGNORECASE رو OR کردیم با DOTALL که شد: 00010010 یا همون ۱۸. حالا اگر کسی به ما عدد ۱۸ رو بده چطور میتونیم بفهمیم چه flag هایی ست شده؟ با AND: TEMPLATE = 1 IGNORECASE = 2 LOCALE = 4 MULTILINE = 8 DOTALL = 16 flag = 18 if flag & TEMPLATE: print("Has TEMPLATE flag") if flag & IGNORECASE: print("Has IGNORECASE flag") if flag & DOTALL: print("Has DOTALL flag") به جای پاس دادن عدد ۱۸ میشه خیلی راحت از "|" استفاده کرد و چیزی رو حفظ نکرد: print(re.search("ABC.", "abc\n", flags=IGNORECASE | DOTALL)) این خودش ۱۸ رو میفرسته. نکته ی خوبش این بود که تنها با یک عدد این اطلاعات رو منتقل کردیم. مثال دومی که از این استفاده کرده ماژول selectors هست که وقتی یه socket ای آماده میشه و میخواد بگه آماده ی read هست یا write ، بهمون یه mask میده که از روی این mask باید بفهمیم. یعنی یه همچین چیزی داریم: EVENT_READ = (1 << 0) EVENT_WRITE = (1 << 1) اگه ۳ بود یعنی هم READ هم WRITE. اگه ۲ بود یعنی فقط WRITE، اگه 1 بود یعنی فقط READ. با همون if بالا متوجه میشیم و کاری که قرار هست انجام بدیم رو با توجه به این عدد انجام میدیم. 🖊 @AmirSoroushh
22 · 1.9K ·

In der Nähe im Feed

DDailyProjectshttps://morioh.com/p/8cf006b4b614?f=5e44c59998b8037d03aa8178DDailyProjectshttps://morioh.com/p/184ebed2363f
diese Nachricht
DDailyProjects✅ شرکت آناکوندا وبسایت https://pyscript.com/ رو لانچ کرد 😁🎉 یک SaaS رایگان برای استفاده از pyscript تا بتونید اپلیکیشن‌های پایتونی رو توی مرورگر براحتی اجرا کنیDDailyProjectshttps://jeff.glass/post/first-look-pyscript-dot-com/ این مقاله، سایت رو بررسی کرده و راجع به هر قسمتش توضیحاتی داده
🐍🐍 Python & Raspberry 🐍🐍 Python & Raspberry 🐍@raspberry_python · Kanal · Technik
7 274Abonnenten3 920Beiträge im Index
Community-Feed In Telegram öffnen

Ein offener öffentlicher Feed aus dem Suchindex ChatCrawler — „Google für das öffentliche Telegram“; wird aktualisiert, während die Community gecrawlt wird. Zeiten in UTC.

Nur öffentliche Inhalte, offizielle Telegram-API. Über uns · FAQ · Grenzen des Index · Seite entfernen · Katalog · Suche · So zählen wir