🐍 Python & Raspberry 🐍
8.21K subscribers
1.92K photos
125 videos
623 files
1.23K links
Python- Raspberry Pi-AI-IOT
ادمین : فرهاد ناصری زاده
@farhad_naserizadeh
@farhad3412

گروه پایتون
@Python_QA
تبادل
@mmtahmasbi
کانال مرتبط
@new_mathematical
@micropython_iot
@c_micro
اینستاگرام
http://Instagram.com/python_raspberry
Download Telegram
🐍 Python & Raspberry 🐍
✔️ مقایسه زمانی "مجموع اعداد یک دنباله" اینجا جمع اعداد حسابی صفر تا یک میلیارد رو: - با استفاده از حلقه for در پایتون - با استفاده از تابع built-in عه "sum" - با استفاده از مورد اول + numba محاسبه کردیم. بیش از 5,880,000 بار سریع‌تر :) آیا پایتون کند…
✔️ بنچ‌مارک کوچک قبلی رو دیدیم، اما واقعا به چه دلیل «پایتون اینقدر کند» و باز هم «پایتون اینقدر تند» محاسبه رو انجام داده؟

- بیاید تا تفاوت روش‌هارو مقایسه کنیم و بفهمیم چرا پایتون هم کند و هم تند عمل کرده.

- اندکی راجع به JIT Compiler‌ها مطالعه کنیم.

- یک معرفی مفصل هم راجع به Numba داشته باشیم.

https://virgool.io/@liewpl/python-is-very-fast-gmmdjs3zyhob

#liewpl
〰️〰️〰️〰️〰️
©@raspberry_python
🐍 Python & Raspberry 🐍
✔️ بنچ‌مارک کوچک قبلی رو دیدیم، اما واقعا به چه دلیل «پایتون اینقدر کند» و باز هم «پایتون اینقدر تند» محاسبه رو انجام داده؟ - بیاید تا تفاوت روش‌هارو مقایسه کنیم و بفهمیم چرا پایتون هم کند و هم تند عمل کرده. - اندکی راجع به JIT Compiler‌ها مطالعه کنیم.…
✔️ از نامبا یه مختصر زیبایی و قدرت رو نشون دادیم و راجع بهش حرف زدیم، اما شاید توی ذهن شما سوالات زیادی راجع بهش شکل گرفته باشه و می‌خواید بدونید:
- نامبا چطور کار میکنه؟
- نامبا کجا «خوب» کار میکنه؟
- چطور به خوبی ازش استفاده کنیم؟
- از نامبا در چه پروژه‌های high performance عی استفاده شده؟

اگه چنین سوال‌هایی دارید بهتره این ۳ ویدیو رو اصلا از دست ندید:
🎥 Make Python Code 1000x Faster With Numba
🎥 Accelerating Scientifc Workloads with Numba - By a Core Developer of Numba Project
🎥 How to accelerate an Existing Codebase With Numba | SciPy

〰️〰️〰️〰️〰️〰️
©️@raspberry_python
look-ahead and look-behind in Regular Expressions (Regex)

اگه فهم این ۴ تا موضوع براتون مشکل هست این پست خیلی کمکتون میکنه مطمینن

#kasra
@raspberry_python
ایا این کد درسته ؟
#kasra
@raspberry_python
ایا کد بالا درسته ؟
Anonymous Quiz
40%
yes
36%
no
24%
idk
بیل گیتس 23 سال پیش CD را با این تصویر تبلیغ کرد:

📀حجم اطلاعات کاغذهایی که رویش نشسته است معادل است با حجم اطلاعات CD که در دستانش است !!

@raspberry_python
✔️ AST and Me
زیر و بم Abstract Systex Tree عه محبوب پایتون رو یاد بگیرید.

آیا تا حالا فکر کردید که یک کد پایتون چگونه اجرا میشه؟ بحث‌هایی رو دیدید که یک سری‌ها میگن پایتون کامپایلری عه یا یه سری‌ دیگه میگن مفسری عه؟ در این کنفرانس ما به چرخه حیات یک قطعه کد پایتون می‌پردازیم تا نقشی که AST در شکل دادن به runtime عه کد شما داره رو درک کنیم.

با استفاده از دانش جدید خود در مورد AST پایتون، خواهید دید که چگونه قبلاً به AST ها اعتماد کرده‌اید و چگونه می توان از آنها برای ساخت ابزارهای عالی استفاده کرد :)

📺 https://www.youtube.com/watch?v=XhWvz4dK4ng

(ابتدا توضيحات رو بخونید)
PyCons: Explanation123

#liewpl

©@raspberry_python
✔️ A bit About Bytes
اگر تا الان حتی یک بار کد پایتون نوشتید یا از پایتون استفاده کردید، احتمالاً به دیدن فایل های کد منبع پایتون عادت کرده اید، و همین‌طور که می‌دونید پسوند این فایل‌ها py. هست. اما ممکنه کنار این فایل‌ها ( یا در پوشه pycache) فایل‌هایی با پسوند pyc. دیده باشید و ممکنه که شنیده باشید که آنها فایل‌های "بایت کد" پایتون هستند. و شاید شنیده باشید که این ذخیره‌سازی نوعی صرفه‌جویی تو زمانه که باعث میشه پایتون مجبور نباشه هر بار که کد شما را اجرا می‌کنه، دوباره اون رو کامپایل کنه.

اما فراتر از جمله «اوه، این بایت کد پایتون است»، آیا واقعاً می‌دونید که توی اون فایل چی هست و پایتون چجوری ازشون استفاده میکنه؟

اگر نه، امروز روز شانس شماست و من بهتون کمک می‌کنم که بفهمید این بایت‌کد چیه و بهتون نشون میدم که چطور داشتن شناخت از بایت‌کدها به شما کمک میکنه :)

📀 https://www.youtube.com/watch?v=cSSpnq362Bk

(ابتدا توضيحات رو بخونید)
PyCons: Explanation123

#liewpl

©@raspberry_python
✔️ Bytes in the Machine

آیا تا به حال فکر کرده اید که مفسر CPython چگونه کار می کند؟ می دونید در CPython دستور سوئیچ ۳۷۲۳ خطی را کجا پیدا کنید؟
من در مورد ساختار مفسری صحبت خواهم کرد که همه ما هر روز از آن استفاده می کنیم، و توضیح می دهم که چگونه من و ند بچلدر یک باگ مرموز را در Byterun، یک مفسر پایتون که در پایتون نوشته شده بود، تعقیب کردیم. ما همچنین تصاویری از VM را هنگام اجرای کد شما مشاهده خواهیم کرد.

💾 https://www.youtube.com/watch?v=HVUTjQzESeo

(ابتدا توضيحات رو بخونید)
PyCons: Explanation123

#liewpl

©@raspberry_python
✔️ تاکنون در گروه‌های مختلف سوالات و بحث‌های زیادی پیرامون اینکه پایتون چگونه کد ما را اجرا میکنه و این سوال که آیا پایتون یک زبان مفسری هست یا کامپایلری درست پاسخ داده نشده.

برای فهمیدن پاسخ این سوال از چند جهت نیاز به دانستن چیزهای مختلف حس میشه که حداقل این نیاز ها در این سه پای‌کان توضیح داده شده.

پس اگر می‌خواهید یک بار برای همیشه متوجه بشید بالاخره پایتون مفسری عه یا کامپایلری و کد ما چگونه اجرا میشه این ۳ پای‌کان رو از دست ندید

PyCons: Explanation123

#liewpl

©@raspberry_python
۳۰۰ به بالا دستور تخلیه شهر میدن
و ۵۰۰ به بالارو کلا ایندکس نمیکنن :))))

البته این فقط به تهران منتهی نمیشه
تبریز و ارومیه هم طوفان نمک اومده
حتی زنجان هم هواش شدیدا گرد و خاک گرفته
@raspberry_python
‏چیزی که امروز به نام ‎اعداد انگلیسی شناخته می‌شوند، برگرفته از شیوهٔ عددنگاری باستانی هندی-پارسی است. اروپایی‌ها از طریق کتاب «حساب الهندی» نوشته ‎خوارزمی دانشمند ایرانی، با این شیوهٔ نگارش اعداد آشنا شدند، آن را برای خود برداشتند و به اسم اعداد انگلیسی معرفی کردند!

@raspberry_python
✔️ کلاس filter

کلاس filter یکی از تایپ‌های built-in پایتون هست.
در filter ما دوتا پارامتر داریم، اولین پارامتر یا یک تابع هست یا None، و دومین پارامتر یک iterable (مثلا لیست، تاپل و ...)؛ حالا filter چیکار میکنه با این‌ها؟ فیلتر میاد دونه دونه از اون iterable عضو میگیره و پاس میده به اون تابع؛
اما اون تابع باید چه شرایطی داشته باشه؟ اون تابع باید عضوی که از فیلتر دریافت میکنه رو بگیره و یک شرط رو برسی کنه و یک مقدار bool برگردونه! مثلا:
def is_too_long(elm) -> bool:
return len(elm) > 100

به اون تابعی که شما به عنوان آرگومان اول به filter پاس می‌دید اصطلاحا میگن predicate.
خب هدف این‌کار چیه؟ filter بر اساس مقدار bool عی که میگیره تصمیم میگیره که آیا اون عضو تایید میشه یا نه؟ چجور تایید میشه؟ وقتی که مقدار return شده به ازای اون عضو True باشه.
آبجکت filter یک iterable عه lazy هست، یعنی اینکه وقتی صداش می‌زنید فوری نتایج رو برنمی‌گردونه و رفتارش دقیقا مثل رفتار آبجکت range هست، برای مثال وقتی می‌نویسید
>>> range(10_000_000)

این ۱۰ میلیون عدد درست نمیشه و فقط یک آبجکت range درست میشه که هر بار که شما روش next میزنید آیتم بعدی رو بهتون میده

پس وقتی برای مثال می‌نویسید:
>>> even_filter = filter(lambda x: x % 2 == 0, range(1, 10))

یک آبجکت filter دریافت می‌کنید که هربار روش next میزنید اون عضوی که در اون تابع predicate نتیجه‌ش True شده رو برمیگردونه

>>> next(even_filter)
2
>>> next(even_filter)
4
>>> next(even_filter)
6
>>> next(even_filter)
8
>>> next(even_filter)
StopIteration

نکته‌ای که میمونه اینه که، پس اون None که گفتیم میشه به عنوان اولین آرگومان پاس داد، چیه؟ اگر شما اولین آرگومان رو None پاس بدی، حکم این رو داره که گفته باشید تمام اعضایی رو از اون iterable بگیر که مقدار truth value اونها True باشه! مثلا:

x = list(filter(None, ["", [], "Iliya", False, 0, 1]))

خروجی کد بالا با توجه به توضیحات:
["Iliya", 1]

پس در نهایت ساختاری که filter میگیره به شکل زیر هست:
filter(function or None, iterable) --> filter object

لازم به ذکر هست که در ماژول itertools یک تایپی وجود داره به اسم filterfalse که کاملا رفتار برعکسی نسبت به filter داره. 😁

#BuiltIn
🖋@Pygrammer
〰️〰️〰️〰️〰️〰️
©️@raspberry_python
🌷🌷کتاب عالی و جدید رمزنگاری 2022 با موضوع الگوریتم های رمرنگاری


Next-generation cryptography algorithms explained: get to grips with new-age cryptography algorithms, protocols, and their implementation /

@raspberry_python