Telegram Web Link
✔️ تمام ۱۰۱ ویدیو PyCon US 2022 هم اکنون در یوتوب در دسترس هستند.
ببینید و یاد بگیرید و لذتش رو ببرید. (خودم امروز تمام keynote ها رو دیدم 😂)

Link

©@PyFarsi
🔥5👍2🤯21
📺 PyCon US 2022, Keynote
Peter Wang, Co-founder and CEO of Anaconda

Programming For Everyone (or, The Next 100 Million Pythonistas)

یکی از بهترین Keynoteهایی که از پای‌کان‌ها دیدم. آقای پیتر ونگ، همین‌طور که بالاتر هم معرفی کردیم، از پیشگامان زندگی بخشیدن به Scientific Python هستن و تقریبا قلب تپنده‌ی این محیط یعنی شرکت آناکوندا رو جان بخشیدن.

ایشون در این Keynote در از افق‌های بسیار روشن آینده پایتون و زندگی اون توی مرورگر پرده برمیدارن و رسما PyScript رو معرفی میکنن.

اما پای‌اسکریپت چیه:
- یک فریم‌ورک برای ساختن اپ‌های غنی پایتون در مرورگر
- استفاده از پایتون در لا به لای html
- کنترل کامل به یک صفحه‌ی وب (DOM)
- میتونه کد‌های جاوااسکریپت رو صدا بزنه توسط اون‌ها صدا زده بشه
- تمام اپ شما با یک زبان نوشته میشه :)
- و کاملا در مرورگر زندگی میکنه و هیچ web serverعی نیاز نداره =) (مثلا الان Jupyter notebook که میخوایم باز کنیم توی ترمینال براش یک سرور و کرنل بالا میاریم و باقی برنامه توی مرورگر در اختیار ماست اما نسل بعدی Jupyter یعنی JupyterLite کاملا در مرورگر اجرا میشه و هیچ سرور و کرنلی خارج از مرورگر احتیاج نداره :))

اگه میخواید حسابی با پای‌اسکریپت حال کنید و پروژه‌های دمویی باهاش زده شدن (که خیلی هم خفن هستن)‌ رو ببینید، این پای‌کان رو از دست ندید.

https://youtu.be/qKfkCY7cmBQ


©@PyFarsi
🔥4
Catastrophic Backtracking - Regex

سلام. توی regex ،‌ این backtracking میتونه به صورت چشم گیری تایم زیادی بگیره در حدی که حتی بعضی از engine ها ازش استفاده نمیکنن.
Backtracking:
Backtracking occurs when a regular expression pattern contains optional quantifiers or alternation constructs, and the regular expression engine returns to a previous saved state to continue its search for a match.

یه attack هم داریم به اسم ReDoS:
Regular Expression Denial Of Service
اگر اپلیکیشن شما از کاربر pattern رو میگیره کاربر میتونه با وارد کردن این مدل pattern ها سیستم رو برای مدتی از کار بندازه. از wikipedia میتونید توضیحات خیلی خوبی بخونید دربارش:
https://en.wikipedia.org/wiki/ReDoS

به این لینک از regex101 رسیدم جالب بود که تا ۲۰۰ step اول رو نشون داد چه اتفاقی میفته:
https://regex101.com/r/iXSKTs/1/debugger
اگر اپلیکیشن ای مینویسید که از یوزر pattern رو میگیره باید حواستون به این قضیه باشه.
@PyFarsi
11👍2
This media is not supported in your browser
VIEW IN TELEGRAM
🔰 وبسرویس ربات @PyGetsApiBot

داکیومنت api در ربات هست و میتونید اون رو بخونید.
همونطور که توی ویدیو دیدن به راحتی میتونیم توی کد هامون از این api استفاده کنیم.
دقت کنید یکبار بیشتر برای احراز هویت بیشتر نیاز نیست درخواست بزنید
و بعدش از توی کد اون تیکه احراز هویت اول رو بر دارین
برای دریافت توکن پیوی پیام بدین

💠 نمونه کد پایتون ...
💠 نمونه کد های بیشتر با زبان های مختلف به زودی ...

آدرس گپ :
🔰 www.tg-me.com/PyFarsi

آدرس کانال :
🔰@PSFarsi
Soon may the wellerman come
To bring us sugar and tea and rum 😋


©@PSFarsi
🔥3
نتایج Python Developer Survey سال 2021 هم رسید 😁

https://lp.jetbrains.com/python-developers-survey-2021/


©@PSFarsi
👍3
✔️ سوال.

میخوایم از یک iterable به صورت n تا n تا عضو بگیریم، مثلا یه لیست داریم از عدد ۱ تا ۱۰۰ توش هست میخوایم با هر بار next زدن یه لیست ۱۰ تایی ازش بهمون داده بشه.

از کدوم روش استفاده میکنید؟ چرا؟


©@PyFarsi
سوال بالا
Anonymous Poll
76%
Generator 🐪
24%
Class 🐫
بنیاد پایتون کاران فارسی
✔️ سوال. میخوایم از یک iterable به صورت n تا n تا عضو بگیریم، مثلا یه لیست داریم از عدد ۱ تا ۱۰۰ توش هست میخوایم با هر بار next زدن یه لیست ۱۰ تایی ازش بهمون داده بشه. از کدوم روش استفاده میکنید؟ چرا؟ ©@PyFarsi
✔️ خب سلام
سوال که میدونیم چیه!
حقیقتش نمیشه به این سوال جواب قطعی داد که یا قطعا generator یا قطعا نوشتن راه‌حل با یک کلاس و پیاده‌سازی یک iterable و iterator

اما بیاید از چند جهت بررسی‌اش کنیم:
• سادگی و خوانا بودن:
والا من که نمی‌تونم بگم کدوم ساده‌تر یا پیچیده‌تره، اما اگه اینجوری به قضیه نگاه کنیم که جنریتور فقط یک تابع هست و یک حلقه توش داره و من می‌دونم که وقتی اون iter تموم بشه بهم excption عه StopIteration برمیگردونه، فهمیدم چیه!

یا از اون طرف اون کلاس، اگه من بدونم که کار داندر ایتر و داندر next چیه؟‌ (که از اسمشون میشه فهمید که یه ربطی به توابع iter و next دارن) و اگه یک کلاسی اینا رو داشته باشه چی میشه، مسئله رو فهمیدم.

*بنظر من* جنریتور با نگاه بالا ساده‌تره چون داندر متد‌ها رو معمولا دیرتر از توابع و اینا یاد میگیریم!

• اما یکی از شاخص‌هاش سادگی یا پیچیدگی کد رو میشه با نگاه کردن به کد‌ها بررسی کرد. منظورم دقیقا نگاه کردن بهشون هست و نه خوندنش.

اگر همینجوری که کد رو دارید نگاه میکنید، کد رو ۹۰ درجه به سمت چپ بچرخونید و با تورفتگی‌ها یک کوه بکشید، می‌بینید که میزان قله و دره‌‌ها و کنار هم بودن‌شون در کد generator بیشتره اما کد کلاس flat تره.
توی ذن پایتون هم میخونیم:
Flat is better than nested!
پس *بنظر من* با نگاه بالا اینجا کد کلاس ساده تره.
و در کل نمیشه گفت حتما این ساده‌تره یا اون 👍

• کارایی:
این دو نمونه کد *دقیقا* یک کار رو انجام میدن و یک خروجی دارن، هر دو lazy هستن، هر دو اون موقعی که ما روشون next میزنیم نتایج رو محاسبه میکنن و بهمون میدن و ...
اما اما اما وقتی من از کلاس استفاده میکنم میتونم اون کلاس رو توسعه‌اش بدم و کارایی‌هاش و قابلیت‌هاش رو بیشتر کنم تا فقط یک NGiver خالی نباشه، اما این در مورد generator صادق نیست.

• حجم و اندازه آبجکت‌های درست شده:
مشخصه که جنریتور در کل یک آبجکته که می‌دونه بالاخره باید با خودش چی کار کنه!

اما کلاس کلا قضیه‌ش میکنه، هم خودش آبجکته که namespace داره و ... و instanceش هم namespace خودش رو داره و مشخصا حجم بیشتری میخواد.

• فرق بین‌شون بعد یک بار iteration:

2025/07/09 06:18:52
Back to Top
HTML Embed Code: