Django Expert
9.71K subscribers
992 photos
81 videos
114 files
1.34K links
✔️ بزرگترین کانال و جامعه جنگو به فارسی
Contact:
@majid_aghamohamad
@BobyCloud

Group:
@DjangoIR

Our Site ;coming soon:
🔜 PyExpert.ir

تبلیغات نداریم فقط درج آگهی های استخدامی مرتبط پذیرفته می‌شود
Download Telegram
مثل اینکه PES 2022 رو دادن توی پونیشا بزنن :)))

برخی از افراد شرکت کونامی رو متهم کردن که قصدش ایجاد بدترین بازی فوتبال دنیا بوده.

#fun
〰️〰️〰️〰️〰️〰️
©@DjangoEx
Audio
👻

#fun
〰️〰️〰️〰️〰️〰️
©@DjangoEx
You Dont Know
50 Cent, Eminem, Cashis & LLoyd Banks
وقتی فکرمیکنی به پایتون مسلطی، اما یهو سورپرایز میشی 🎧

🐍 Who run it?
You know, you acting like you don't know
I tear the club up for sure
This flow is gon' bring mo dough
And you know but you acting like you don't know
🐍 Who run it?

#fun #music #python
〰️〰️〰️〰️〰️〰️
©@DjangoEx
'^(\w|\.|\_|\-)+[@](\w|\_|\-|\.)+[.]\w{2,3}$'

© https://redd.it/q0c9o3
#fun_but_hagh
〰️〰️〰️〰️〰️〰️
©@DjangoEx
✔️ کیا تا حالا لپ تاپشون رو خاموش نکردن؟ :))‌

#fun_but_hagh
〰️〰️〰️〰️〰️〰️
©@DjangoEx
👍1
✔️ آشنایی با structural pattern matching در پایتون

توی این ویدیو به مناسبت ریلیز شدن نسخه ۳.۱۰ پایتون تصمیم گرفتم ساختار مهمی که توی این نسخه هست رو براتون باز کنم و برای کسایی که این ساختار رو نمیشناسن بگم که این ساختار چیه و چه کمکی میتونه به ما بکنه

((دوستان انتقادات و پیشنهاداتون باعث میشه تا نقاط ضعف کار مشخص بشه و برای اصلاحش گام برداریم.پس حتما نظراتتون رو زیر ویدیو کامنت کنین🙏 ))

👉 Link: https://youtu.be/d8-ocyf6l9M

Thanks to: @shahriaarrr12

#python #پایتون
〰️〰️〰️〰️〰️〰️
©@DjangoEx
✔️ مرگ تخصص

جهل و نادانی چطور فضیلت شد؟

با از بین رفتن احترام به حقیقت، تجزیه و تحلیل منطقی و تفکر انتقادی شرایط خطرناکی در پیش داریم. در این شرایط نظرات ناآگاه هم وزن نظرات متخصصان می‌شود و تقلب، نظریه‌های توطئه، اخبار جعلی، تبلیغات و انواع مزخرفات رونق می‌گیرند.

معمولا بین متخصص‌ها و غیر متخصص‌ها در جامعه شکاف و فاصله‌ای هست. تام نیکولز نویسنده کتاب مرگ تخصص ابتدا به دلایل این شکاف اشاره می‌کند. چیزهایی مثل اثر دانینگ-کروگر، خطاهای شناختی و انواع الگوهای فکری نادرست مثل خرافات و تئوری توطئه. بعد سراغ این موضوع می‌رود که این شکاف به مرز خطرناکی رسیده؛ یعنی وضعیتی که فرد عامی مفتخر است از اینکه متخصص نیست. پرسش درباره اینکه چرا اینطور شده؟ چه چیزی در این دوران تازه تغییر کرده که باعث این وضع شده؟

🎧 در پادکست بی‌پلاس گوش دهید - خلاصه کتاب مرگ تخصص
👉 Link: https://bpls.me/9u3dxl

〰️〰️〰️〰️〰️〰️
©@DjangoEx
Forwarded from DevOps Expert (Mohammad Babazadeh)
#fun

〰️〰️〰️〰️〰️〰️
© @DevOpsEx
آموزش کامل داکر 🔥

✔️ ۰۰ - آموزش داکر - داکر چیست و به چه دردی میخوره؟
👉🏻 https://youtu.be/j4mYb5ZuH3Q

✔️ ۰۱ - تفاوت داکر با ماشین مجازی - داکر چطوری کار می کنه؟
👉🏻 https://youtu.be/M-tTkh6fS8g

✔️ ۰۲ - نصب و کانفیگ داکر بر روی لینوکس
👉🏻 https://youtu.be/nVZg08dcx90

✔️ ۰۳ - نصب و کانفیگ داکر بر روی ویندوز
👉🏻 https://youtu.be/ziMMC8Rc12M

#داکر #سیلیسیم
〰️〰️〰️〰️〰️〰️
© @DevOpsEx
✔️ همه‌چیز درباره‌ی الگوهاست!

در پیرو نسخه ۳.۱۰ زبان برنامه‌نویسی پایتون که در ۴ اکتبر ۲۰۲۱ منتشر شد. یکی از امکانات جدید آن که پیش‌تر هم راجع‌به آن صحبت‌های زیادی شده بود مورد توجه برنامه‌نویسان پایتون قرار گرفت. این امکان Structural Pattern Matching نام دارد.
در نگاه اول به نمونه کدهای مرتبط با این قابلیت، ممکن است شبیه به switch case در زبان‌هایی مثل C/CPP، Java، Javascript و... بنظر برسد. اما واقعیت چیز دیگری‌ست.
اول از همه باید توجه داشت که این قابلیت ابداع شده‌ توسط پایتون نیست و زبان‌های دیگری مثل Haskell، Erlang، Ruby و... نیز از چنین ساختاری برخوردار هستند. توجه شما را به این نقل قول از Brandt Bucher نویسنده این قابلیت جدید از پایتون جلب می‌کنم:
"We didn't invent most of this, we stole a lot of it :)"

تفاوت Structural Pattern Matching و Switch Case
برنت بوکر (Brandt Bucher) نویسنده این قابلیت توضیح می‌دهد: درواقع چیزهای زیادی وجود دارد که switch case انجام می‌دهد و pattern matching نمی‌تواند و همچنین قابلیت‌های زیادی در pattern matching وجود دارد که switch case از آنها برخوردار نیست. اگر شما تلاش کنید که این دو ساختار را شبیه هم در نظر بگیرید، شانس استفاده از قدرت هردو را از دست می‌دهید.

اما این چه ساختاری است؟
درواقع Structural Pattern Matching ترکیبی از دو ایده‌ی کنترل روند (control flow) و گسستن ساختار (destructure) است. در این ساختار با دریافت یک مقدار (subject value) و تعریف کردن چند الگوی تطبیق (pattern) برای آن، فرایند را منتهی به تطابق یا عدم تطابق می‌کنیم.
در تعریف ساده: در این روند مقدار ورودی به اجزای سازنده آن تجزیه شده و در جریان تطابق با الگوی تعیین شده قرار می‌گیرد.
فرض کنید متغیر name را به عنوان ورودی می‌گیریم و انتظار داریم که از نوع لیست، به اندازه ۲، در اندیس صفر مقدار Shahriar و در اندیس یکم مقدار Shariati را داشته باشد. در پایتون ۳.۹ به قبل، می‌توانیم چنین کدی را داشته باشیم:

if (
isinstance(name, list)
and len(name) == 2
and name[0] == "Shahriar"
and name[1] == "Shariati"
):
print("Name is correct.")
else:
print("Name is incorrect.")

اما حالا با کمک پایتون ۳.۱۰ می‌توانیم چنین الگویی را تعریف کنیم:

match name:
case ["Shahriar", "Shariati"]:
print("Name is correct")
case _:
print("Name is incorrect")

نکته: علامت underscore در اینجا حکم الگوی خالی را دارد و در صورتی که مقدار ورودی با هیچ کدام از الگوهای تعریف شده تطابق نداشته باشد اتفاق می‌افتد.
به همین ترتیب مثلا برای مقایسه مقادیر داخل یک data class به نام Point نیز می‌توانیم چنین الگویی تعریف کنیم:

match p:
case Point(0, 0):
print("At the origin!")
case Point(0, y):
print(f"On the y-axis at {y = }!")
case Point(x, 0):
print(f"On the x-axis at {x = }!")

در قطعه کد بالا با تعریف تطابق کلاس و یک الگوی پویا می‌توانیم مقادیر موجود در کلاس مانند x و y را نیز استخراج کنیم و در بدنه‌ی شرط از آن استفاده کنیم. برای مطالعه بیشتر به pep-636 مراجعه کنید.

احتمالا تا الآن متوجه شده باشید که این قابلیت چیزی بیشتر و متفاوت‌تر از مقایسه معمولی است و همانطور که پیداست، اینجا الگوها حائز اهمیت هستند!
این قابلیت در سه pep به شماره‌های ۶۳۴، ۶۴۵ و ۶۳۶ معرفی شده که خواندن آنها بسیار مفید است.

منابع
PEP 634 -- Structural Pattern Matching: Specification
PEP 635 -- Structural Pattern Matching: Motivation and Rationale
PEP 636 -- Structural Pattern Matching: Tutorial
Python 3.10 Release Stream - Brandt Bucher