Graphs in Python: Depth-First Search (DFS) Algorithm
https://stackabuse.com/depth-first-search-dfs-in-python-theory-and-implementation/
@raspberry_python
https://stackabuse.com/depth-first-search-dfs-in-python-theory-and-implementation/
@raspberry_python
بیل گیتس 23 سال پیش CD را با این تصویر تبلیغ کرد:
📀حجم اطلاعات کاغذهایی که رویش نشسته است معادل است با حجم اطلاعات CD که در دستانش است !!
@raspberry_python
📀حجم اطلاعات کاغذهایی که رویش نشسته است معادل است با حجم اطلاعات CD که در دستانش است !!
@raspberry_python
✔️ AST and Me
زیر و بم Abstract Systex Tree عه محبوب پایتون رو یاد بگیرید.
آیا تا حالا فکر کردید که یک کد پایتون چگونه اجرا میشه؟ بحثهایی رو دیدید که یک سریها میگن پایتون کامپایلری عه یا یه سری دیگه میگن مفسری عه؟ در این کنفرانس ما به چرخه حیات یک قطعه کد پایتون میپردازیم تا نقشی که AST در شکل دادن به runtime عه کد شما داره رو درک کنیم.
با استفاده از دانش جدید خود در مورد AST پایتون، خواهید دید که چگونه قبلاً به AST ها اعتماد کردهاید و چگونه می توان از آنها برای ساخت ابزارهای عالی استفاده کرد :)
📺 https://www.youtube.com/watch?v=XhWvz4dK4ng
(ابتدا توضيحات رو بخونید)
PyCons: Explanation • 1 • 2 • 3
#liewpl
〰〰〰〰〰
©@raspberry_python
زیر و بم Abstract Systex Tree عه محبوب پایتون رو یاد بگیرید.
آیا تا حالا فکر کردید که یک کد پایتون چگونه اجرا میشه؟ بحثهایی رو دیدید که یک سریها میگن پایتون کامپایلری عه یا یه سری دیگه میگن مفسری عه؟ در این کنفرانس ما به چرخه حیات یک قطعه کد پایتون میپردازیم تا نقشی که AST در شکل دادن به runtime عه کد شما داره رو درک کنیم.
با استفاده از دانش جدید خود در مورد AST پایتون، خواهید دید که چگونه قبلاً به AST ها اعتماد کردهاید و چگونه می توان از آنها برای ساخت ابزارهای عالی استفاده کرد :)
📺 https://www.youtube.com/watch?v=XhWvz4dK4ng
(ابتدا توضيحات رو بخونید)
PyCons: Explanation • 1 • 2 • 3
#liewpl
〰〰〰〰〰
©@raspberry_python
YouTube
Emily Morehouse-Valcarcel - The AST and Me - PyCon 2018
Speaker: Emily Morehouse-Valcarcel
Get under the hood and learn about Python's beloved Abstract Syntax Tree. Ever wonder how Python code is run? Overheard people arguing about whether Python is interpreted or compiled? In this talk, we will delve into the…
Get under the hood and learn about Python's beloved Abstract Syntax Tree. Ever wonder how Python code is run? Overheard people arguing about whether Python is interpreted or compiled? In this talk, we will delve into the…
✔️ A bit About Bytes
اگر تا الان حتی یک بار کد پایتون نوشتید یا از پایتون استفاده کردید، احتمالاً به دیدن فایل های کد منبع پایتون عادت کرده اید، و همینطور که میدونید پسوند این فایلها
اما فراتر از جمله «اوه، این بایت کد پایتون است»، آیا واقعاً میدونید که توی اون فایل چی هست و پایتون چجوری ازشون استفاده میکنه؟
اگر نه، امروز روز شانس شماست و من بهتون کمک میکنم که بفهمید این بایتکد چیه و بهتون نشون میدم که چطور داشتن شناخت از بایتکدها به شما کمک میکنه :)
📀 https://www.youtube.com/watch?v=cSSpnq362Bk
(ابتدا توضيحات رو بخونید)
PyCons: Explanation • 1 • 2 • 3
#liewpl
〰〰〰〰〰
©@raspberry_python
اگر تا الان حتی یک بار کد پایتون نوشتید یا از پایتون استفاده کردید، احتمالاً به دیدن فایل های کد منبع پایتون عادت کرده اید، و همینطور که میدونید پسوند این فایلها
py.
هست. اما ممکنه کنار این فایلها ( یا در پوشه pycache) فایله
ایی با پسوند pyc. دیده با
شید و ممکنه که شنیده باشید که آنها فایلهای "بایت کد" پایتون هستند. و شاید شنیده باشید که این ذخیرهسازی نوعی صرفهجویی تو زمانه که باعث میشه پایتون مجبور نباشه هر بار که کد شما را اجرا میکنه، دوباره اون رو کامپایل کنه.اما فراتر از جمله «اوه، این بایت کد پایتون است»، آیا واقعاً میدونید که توی اون فایل چی هست و پایتون چجوری ازشون استفاده میکنه؟
اگر نه، امروز روز شانس شماست و من بهتون کمک میکنم که بفهمید این بایتکد چیه و بهتون نشون میدم که چطور داشتن شناخت از بایتکدها به شما کمک میکنه :)
📀 https://www.youtube.com/watch?v=cSSpnq362Bk
(ابتدا توضيحات رو بخونید)
PyCons: Explanation • 1 • 2 • 3
#liewpl
〰〰〰〰〰
©@raspberry_python
YouTube
James Bennett - A Bit about Bytes: Understanding Python Bytecode - PyCon 2018
Speaker: James Bennett
At some point every Python programmer sees Python bytecode files -- they're those '.pyc' files Python likes to leave behind after it runs. But have you ever wondered what's really going on in those files? Well, wonder no more! In this…
At some point every Python programmer sees Python bytecode files -- they're those '.pyc' files Python likes to leave behind after it runs. But have you ever wondered what's really going on in those files? Well, wonder no more! In this…
✔️ Bytes in the Machine
آیا تا به حال فکر کرده اید که مفسر CPython چگونه کار می کند؟ می دونید در CPython دستور سوئیچ ۳۷۲۳ خطی را کجا پیدا کنید؟
من در مورد ساختار مفسری صحبت خواهم کرد که همه ما هر روز از آن استفاده می کنیم، و توضیح می دهم که چگونه من و ند بچلدر یک باگ مرموز را در Byterun، یک مفسر پایتون که در پایتون نوشته شده بود، تعقیب کردیم. ما همچنین تصاویری از VM را هنگام اجرای کد شما مشاهده خواهیم کرد.
💾 https://www.youtube.com/watch?v=HVUTjQzESeo
(ابتدا توضيحات رو بخونید)
PyCons: Explanation • 1 • 2 • 3
#liewpl
〰〰〰〰〰
©@raspberry_python
آیا تا به حال فکر کرده اید که مفسر CPython چگونه کار می کند؟ می دونید در CPython دستور سوئیچ ۳۷۲۳ خطی را کجا پیدا کنید؟
من در مورد ساختار مفسری صحبت خواهم کرد که همه ما هر روز از آن استفاده می کنیم، و توضیح می دهم که چگونه من و ند بچلدر یک باگ مرموز را در Byterun، یک مفسر پایتون که در پایتون نوشته شده بود، تعقیب کردیم. ما همچنین تصاویری از VM را هنگام اجرای کد شما مشاهده خواهیم کرد.
💾 https://www.youtube.com/watch?v=HVUTjQzESeo
(ابتدا توضيحات رو بخونید)
PyCons: Explanation • 1 • 2 • 3
#liewpl
〰〰〰〰〰
©@raspberry_python
YouTube
Allison Kaptur - Bytes in the Machine: Inside the CPython interpreter - PyCon 2015
"Speaker: Allison Kaptur
Have you ever wondered how the CPython interpreter works? Do you know where to find a 1,500 line switch statement in CPython? I'll talk about the structure of the interpreter that we all use every day by explaining how Ned Batchelder…
Have you ever wondered how the CPython interpreter works? Do you know where to find a 1,500 line switch statement in CPython? I'll talk about the structure of the interpreter that we all use every day by explaining how Ned Batchelder…
✔️ تاکنون در گروههای مختلف سوالات و بحثهای زیادی پیرامون اینکه پایتون چگونه کد ما را اجرا میکنه و این سوال که آیا پایتون یک زبان مفسری هست یا کامپایلری درست پاسخ داده نشده.
برای فهمیدن پاسخ این سوال از چند جهت نیاز به دانستن چیزهای مختلف حس میشه که حداقل این نیاز ها در این سه پایکان توضیح داده شده.
پس اگر میخواهید یک بار برای همیشه متوجه بشید بالاخره پایتون مفسری عه یا کامپایلری و کد ما چگونه اجرا میشه این ۳ پایکان رو از دست ندید
PyCons: Explanation • 1 • 2 • 3
#liewpl
〰〰〰〰〰
©@raspberry_python
برای فهمیدن پاسخ این سوال از چند جهت نیاز به دانستن چیزهای مختلف حس میشه که حداقل این نیاز ها در این سه پایکان توضیح داده شده.
پس اگر میخواهید یک بار برای همیشه متوجه بشید بالاخره پایتون مفسری عه یا کامپایلری و کد ما چگونه اجرا میشه این ۳ پایکان رو از دست ندید
PyCons: Explanation • 1 • 2 • 3
#liewpl
〰〰〰〰〰
©@raspberry_python
۳۰۰ به بالا دستور تخلیه شهر میدن
و ۵۰۰ به بالارو کلا ایندکس نمیکنن :))))
البته این فقط به تهران منتهی نمیشه
تبریز و ارومیه هم طوفان نمک اومده
حتی زنجان هم هواش شدیدا گرد و خاک گرفته
@raspberry_python
و ۵۰۰ به بالارو کلا ایندکس نمیکنن :))))
البته این فقط به تهران منتهی نمیشه
تبریز و ارومیه هم طوفان نمک اومده
حتی زنجان هم هواش شدیدا گرد و خاک گرفته
@raspberry_python
چیزی که امروز به نام اعداد انگلیسی شناخته میشوند، برگرفته از شیوهٔ عددنگاری باستانی هندی-پارسی است. اروپاییها از طریق کتاب «حساب الهندی» نوشته خوارزمی دانشمند ایرانی، با این شیوهٔ نگارش اعداد آشنا شدند، آن را برای خود برداشتند و به اسم اعداد انگلیسی معرفی کردند!
@raspberry_python
@raspberry_python
✔️ کلاس
در
اما اون تابع باید چه شرایطی داشته باشه؟ اون تابع باید عضوی که از فیلتر دریافت میکنه رو بگیره و یک شرط رو برسی کنه و یک مقدار
خب هدف اینکار چیه؟
آبجکت
پس وقتی برای مثال مینویسید:
#BuiltIn
🖋@Pygrammer
〰️〰️〰️〰️〰️〰️
©️@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
Next-generation cryptography algorithms explained: get to grips with new-age cryptography algorithms, protocols, and their implementation /
@raspberry_python
Massimo_Bertaccini_Next_generation_cryptography_algorithms_explained.pdf
10.5 MB
🌷🌷کتاب عالی و جدید رمزنگاری 2022 با موضوع الگوریتم های رمرنگاری
Next-generation cryptography algorithms explained: get to grips with new-age cryptography algorithms, protocols, and their implementation /
@raspberry_python
Next-generation cryptography algorithms explained: get to grips with new-age cryptography algorithms, protocols, and their implementation /
@raspberry_python
✔️ کلاس
این تایپ برای اولین پارامتر یک
اول از همه تایپ مپ درست مانند
کاری که map میکنه اینه که میاد دونه دونه از اون
چند مثال کاربردی 🧪
تبدیل همه اعداد یک لیست به مربع خودشان:
اگر به
〰️〰️〰️〰️〰️〰️
©️@raspberry_python
map
کلاس map
یکی دیگه از تایپهای built-in پایتون است.این تایپ برای اولین پارامتر یک
Callable
دریافت میکنه (مثلا یک تابع یا یک کلاس که داندر __call__
رو پیادهسازی میکنه) و پارامتر بعدیش تعداد متغیری iterable
هست که بعد از callable
بهش پاس میدیم. signatureعه تابع مپ به این شکل هست:map(callable, *iterables) —> map objectاما map چه کاری انجام میده؟ 🤔
اول از همه تایپ مپ درست مانند
range
و فیلتر lazy iterator
هست، یعنی فوری نتایج رو محاسبه نمیکنه،کاری که map میکنه اینه که میاد دونه دونه از اون
iterable
(یا iterable
هایی) که بهش داده شده، به اون callable
پاس میده و نتیجه ای که اون callable
بهش داده (در واقع مقداری که از callable
ما return
شده) رو هر بار که ما next
میزنیم به ما برمیگردونه!چند مثال کاربردی 🧪
تبدیل همه اعداد یک لیست به مربع خودشان:
lst = [2, 4, 6, 8]تبدیل تمام استرینگهای یک لیست به شکل Uppercase خودشان:
print(list(map(lambda x: x ** 2, lst)))
Output: [4, 16, 36, 64]
lst = ["John", "David", "Mike"]نکته مهم ❗️
print(list(map(str.upper, lst)))
Output: ['JOHN', 'DAVID', 'MIKE']
اگر به
map
چند تا iterable
میدید، باید حواستون باشه که اون callable
باید به تعداد iterable
ها پارامتر داشته باشه! مثال:x = list(map(lambda x, y: x + y, [1, 2, 3], [4, 5, 6]))در مثال بالا دو تا
print(x)
Output: [5, 7, 9]
iterable
به مپ پاس دادیم پس باید تابعی که به map
میدیم دوتا آرگومان بگیره. حالا map
میاد پارامتر اول (یعنی x
) رو از اولین iterable
و دومی رو (یعنی y
) از دومین iterable
میگیره! نکته قابل توجه دیگه اینکه، این فرایند توی تابع (یعنی جمع x
و y
) به تعداد اعضای کوتاه ترین iterable
انجام میشه! یعنی اگر یکی از iterable
ها 2 عضو داشت و بقیه 5 عضو، فقط روی 2 عضو اول هر iterable
مپ کار انجام میده! مثال:x = list(map(lambda x, y: x + y, [2, 3], [4, 5, 6, 4]))🖋 @Pygrammer
print(x)
Output: [6, 8]
〰️〰️〰️〰️〰️〰️
©️@raspberry_python