من پست interactive خیلی دوست دارم, که ذهن مخاطب رو به چالش بکشه و صرفا نخونه و رد شه. برای همین ذهنتون رو به چالش میکنم.
تو ذن پایتون داریم
There should be one-- and preferably only one --obvious way to do it.
ولی از طرفی داریم
there is no solution only trade offs
این دو تا چه فرقی باهم دارن تو software development؟ یعنی یکیشون غلطه؟ در تضادن؟ یا نیستن؟
کامنت کنید, بهترین کامنت رو تا فردا پست میکنم 😁
@ManiFoldsPython
تو ذن پایتون داریم
There should be one-- and preferably only one --obvious way to do it.
ولی از طرفی داریم
there is no solution only trade offs
این دو تا چه فرقی باهم دارن تو software development؟ یعنی یکیشون غلطه؟ در تضادن؟ یا نیستن؟
کامنت کنید, بهترین کامنت رو تا فردا پست میکنم 😁
@ManiFoldsPython
ابزاری که تو جنگو استفاده میشه برای پیدا کردن bottleneck
Silk
Django Tool Bar
RunProfileSaver
فصل 26 کتاب Two scopes of django رو حتما مطالعه کنید 👍
@ManiFoldsPython
Silk
Django Tool Bar
RunProfileSaver
فصل 26 کتاب Two scopes of django رو حتما مطالعه کنید 👍
@ManiFoldsPython
GitHub
GitHub - jazzband/django-silk: Silky smooth profiling for Django
Silky smooth profiling for Django. Contribute to jazzband/django-silk development by creating an account on GitHub.
👍1
الان دیدم دوره csx هاروارد رو گذاشتن 2.500 هم میفروشن. 40 ساعت دوره هست که به صورت آنلاین ضبط میشه.
تا اینجا مشکلی نداره, مشکل از جایی شروع میشه که
1. مدرس این دوره تاحالا تو شرکتی بالای 5 نفر کارمند کار نکرده
2. کد هایی که تو ریپو مدرس هست واقعا سمن. ساده ترین قواعد پایتونی هم توش رعایت نشده.
https://github.com/ahforoughi/shopping_site_flask/blob/master/main.py
یک خط کدو تو فایل 200 خطی 22 بار تکرار کرده
من ادعایی ندارم, ولی با دانش کمم تشخیص میدم که این ایرادات هست:
clean code❌
flake8 ❌
snake_case ❌
sql injection ❌
DRY ❌
multiple connections overhead ❌
وقتی یک دوره تهیه میکنید, اگه خارجی هست حتما تو سایت trustpilot چکش کنید که ایا اونجایی که دوره میخرین سایت سرویس دهندش خوبه یا نه. نمرش پایینتر از 3 بود یعنی پلتفورم جالبی نیست و قطعا بهترش هست.
trustpilot.com
مثلا
datacamp 4.6
udacity 4.8
codecademy 4.0
خود review هارو هم میتونید بخونید و متوجه شین چرا مردم میگن فلان سایت بده.
محتوی فارسی که من دیدم اغلب اوقات رایگان ها بهتر از پولیا بودن.
@ManiFoldsPython
تا اینجا مشکلی نداره, مشکل از جایی شروع میشه که
1. مدرس این دوره تاحالا تو شرکتی بالای 5 نفر کارمند کار نکرده
2. کد هایی که تو ریپو مدرس هست واقعا سمن. ساده ترین قواعد پایتونی هم توش رعایت نشده.
https://github.com/ahforoughi/shopping_site_flask/blob/master/main.py
یک خط کدو تو فایل 200 خطی 22 بار تکرار کرده
من ادعایی ندارم, ولی با دانش کمم تشخیص میدم که این ایرادات هست:
clean code❌
flake8 ❌
snake_case ❌
sql injection ❌
DRY ❌
multiple connections overhead ❌
وقتی یک دوره تهیه میکنید, اگه خارجی هست حتما تو سایت trustpilot چکش کنید که ایا اونجایی که دوره میخرین سایت سرویس دهندش خوبه یا نه. نمرش پایینتر از 3 بود یعنی پلتفورم جالبی نیست و قطعا بهترش هست.
trustpilot.com
مثلا
datacamp 4.6
udacity 4.8
codecademy 4.0
خود review هارو هم میتونید بخونید و متوجه شین چرا مردم میگن فلان سایت بده.
محتوی فارسی که من دیدم اغلب اوقات رایگان ها بهتر از پولیا بودن.
@ManiFoldsPython
👍9👀1
Data+Structures+and+Algorithms+Bootcamp+in+Python+slides+Remaster.pdf
40.9 MB
یک دوره خوب برای algorithm از یودمی:
https://git.ir/udemy-the-complete-data-structures-and-algorithms-course-in-python/
کل pdf دوره هم براتون آپلود کردم. خود PDF به تنهایی خوندنش کافی نیست چون instructor از روش درس میده و توضیح اضافی میده.
من خودم جدا از این تو گوگل سرچ میکنم و بیشتر در موردش میخونم. و به chatgpt میگم بهم با مثال پایتونی توضیح بده تا بهتر متوجه شم.
سوالات interview رو اول خودتون حل کنید بعد فیلمشو ببینید که اون چطور حل کرده.
@ManiFoldsPython
https://git.ir/udemy-the-complete-data-structures-and-algorithms-course-in-python/
کل pdf دوره هم براتون آپلود کردم. خود PDF به تنهایی خوندنش کافی نیست چون instructor از روش درس میده و توضیح اضافی میده.
من خودم جدا از این تو گوگل سرچ میکنم و بیشتر در موردش میخونم. و به chatgpt میگم بهم با مثال پایتونی توضیح بده تا بهتر متوجه شم.
سوالات interview رو اول خودتون حل کنید بعد فیلمشو ببینید که اون چطور حل کرده.
@ManiFoldsPython
❤5
Python BackendHub
من پست interactive خیلی دوست دارم, که ذهن مخاطب رو به چالش بکشه و صرفا نخونه و رد شه. برای همین ذهنتون رو به چالش میکنم. تو ذن پایتون داریم There should be one-- and preferably only one --obvious way to do it. ولی از طرفی داریم there is no solution only…
تو کامنتا جواب خیلی کاملی پیدا نکردم,
پاسخ این موضوع:
درواقع باهم درتضاد نیستن و مختلفن
ذن پایتون به readability و maintainability بودن یک کد اشاره میکنه. میگه شما موقع نوشتن کد فقط یک راه حل منطقی دارین و بهتره فقط از همون راه حل استفاده کنید و الکی کدتون رو پیچیده و غیرقابل فهم نکنید. مثل مثالی که از لینکدین چند وقت پیش زده بودم.
اما دومی بیشتر تو بحث software design و pattern design مطرحه که میگه شما سولوشن های زیادی دارین, هیچکدوم خوب و بد نیستن. اما هرکدوم trade off خودشون رو دارن, و با توجه به منطقی که برای خودتون تعریف کردین باید یکیشو انتخاب کنید. یعنی برخلاف باینری, سولوشن ها 1 و 0 نیستند و این منطق پشت بیزنس و سایز اون بیزنس هست که باعث میشه وزن trade off های یک سولوشن سنگین تر یا سبک تر شه نسبت به هم دیگه.
همین موضوع هم راجب package installer هایی که تو کامنت اشاره شد میکنه مثل pypi و pipenv.
@ManiFoldsPython
پاسخ این موضوع:
درواقع باهم درتضاد نیستن و مختلفن
ذن پایتون به readability و maintainability بودن یک کد اشاره میکنه. میگه شما موقع نوشتن کد فقط یک راه حل منطقی دارین و بهتره فقط از همون راه حل استفاده کنید و الکی کدتون رو پیچیده و غیرقابل فهم نکنید. مثل مثالی که از لینکدین چند وقت پیش زده بودم.
اما دومی بیشتر تو بحث software design و pattern design مطرحه که میگه شما سولوشن های زیادی دارین, هیچکدوم خوب و بد نیستن. اما هرکدوم trade off خودشون رو دارن, و با توجه به منطقی که برای خودتون تعریف کردین باید یکیشو انتخاب کنید. یعنی برخلاف باینری, سولوشن ها 1 و 0 نیستند و این منطق پشت بیزنس و سایز اون بیزنس هست که باعث میشه وزن trade off های یک سولوشن سنگین تر یا سبک تر شه نسبت به هم دیگه.
همین موضوع هم راجب package installer هایی که تو کامنت اشاره شد میکنه مثل pypi و pipenv.
@ManiFoldsPython
👍2
سایت QuillBot اومده یک AI ساخته برای Paraphrase کردن متن chatgpt و کلا AI که دیگه شناسایی نشن 👌
واقعا عالیه
Paraphrasing Tool - QuillBot AI
@ManiFoldsPython
واقعا عالیه
Paraphrasing Tool - QuillBot AI
@ManiFoldsPython
داشتم quora میخوندم که به یک بحث جالب
با chatgpt ترجمه کردم. انگلیسیش رو میتونید از لینک زیر بخونید
لینک
میگفت دولوپر جاوا و پایتون زیاد شده و چه زمانی میرسه که supply بیشتر از demand میشه
شما نمی توانید به شدت بین تجربه 15 ساله و 10 ساله تمایز قائل شوید. به عبارت دیگر، هیچ کس نمی خواهد یک فرد با تجربه 15 ساله استخدام کند زمانی که فکر می کند که کار می تواند توسط فرد با تجربه 10 ساله انجام شود. شما باید با گذشت زمان قابلیت انجام کارهای بسیار بیشتری را داشته باشید و برای این منظور باید با مسائل حل مسئله، سیستم ها، طراحی، پلتفرم ها، چارچوب ها، زبان های برنامه نویسی، ابزارها و البته دامنه آشنایی کامل داشته باشید. مهارت نرم به جای خود، همچنین باید یک سیستم پیچیده رو تو ۵ مین توضیح بدید و تو ۵۰ صفحه ببندیدش. تنها تعداد کمی از "برنامه نویسان" به این سطح می رسند و اینجاست که کمبود واقعی وجود دارد.
اما جواب محکمی که یک نفر داد و من خیلی لذت بردم:
من با فرض شما مخالفت میکنم. من از اوایل سال 1984 برنامهنویسی میکنم و افرادی مانند من به دنبال کار هستند. من برنامهنویسی دستگاههای تعبیه شده برای سیستمهای پیچیده مانند دستگاههای پزشکی انجام میدهم. اگر 10 نفر مانند من پیدا کنم، میتوانم در عرض دو هفته برای آنان شغل دائم و با درآمد بالا پیدا کنم. چرا دو هفته؟ چون من به واقعیت نمیپردازم که چندین پیشنهاد کار از مشتریان یا تماسهای سرد وجود دارد، به دلیل اینکه همیشه فرصتهای بیشتری وجود دارد.
من دارای مدرک BSEE از دانشگاه عمومی قابل قبول میدوستی است. من به زبان برنامهنویسی 'C' برنامهنویسی میکنم و کمی هم C++ (در حال حاضر نه زیاد) و به نیاز نیز کمی C# استفاده میکنم اما در آن خیلی خوب نیستم. من درآمد قابل توجهی با شش رقمی دارم و اگر مایل به جا به جایی در شغل باشم میتوانم بیشتر درآمد داشته باشم.
من با مدارات سختافزاری، حسگرها، دستگاههای آزمایشگاهی و سیستمهای پیچیده کد مینویسم و پول در میآورم. من محصولات جدید را طراحی میکنم (با استفاده از کد قدیمی خودم و اضافه کردن 10٪ جدید).
من نمیدانم چگونه باید به دیگران آموزش دهم که چگونه برنامهنویسی کنند. آنها نمیتوانند آن را درک کنند. من میدانم تجربه و بینش زیادی دارم ولی بیشتر از سال های کاریم هست. افراد به خودی خود کنجکاو نیستند و به این که محصول کامل چگونه عمل میکند، علاقهای ندارند. آنها به وضعیت فعلی شک نمیکنند و محدودیتهای غیر واقعی را مانند آن است که غیرقابل تغییر است، می پذیرند. آنها به یک ایده چسبیده و درباره نحوه کار تحقیق نمیکنند یا چگونه میتواند بهتر اجرا شود یا روش اجرا را تغییر دهند.
من با چند مهندس دیگر که در چهار دهه گذشته بهتر یا بهتر از من بودند، آشنا شدهام، اما آنها بسیار نادر هستند. آنها همیشه کار دارند. من از کار اخراج شدهام و اخراج شدهام، اما پیدا کردن شغل جدید هرگز غیر ممکن نیست و نگران نیستم زیرا میدانم که «آنها» به من بیشتر نیاز دارند تا من به «آنها». تنها چند نفری مانند من وجود دارند و تعداد زیادی از «آنها» وجود دارد. از بابت برگزیده شدن توسط هوش مصنوعی مانند همراه هوا، نگران نیستم، زیرا نمونههای کد کافی وجود ندارد که یک شبکه عصبی را در مورد آنچه که من انجام میدهم و چگونه انجام میدهم، آموزش دهد. تا زمانی که من تصمیم نگیرم که از کار برم یا بمیرم، شغل خواهم داشت.
@ManiFoldsPython
با chatgpt ترجمه کردم. انگلیسیش رو میتونید از لینک زیر بخونید
لینک
میگفت دولوپر جاوا و پایتون زیاد شده و چه زمانی میرسه که supply بیشتر از demand میشه
شما نمی توانید به شدت بین تجربه 15 ساله و 10 ساله تمایز قائل شوید. به عبارت دیگر، هیچ کس نمی خواهد یک فرد با تجربه 15 ساله استخدام کند زمانی که فکر می کند که کار می تواند توسط فرد با تجربه 10 ساله انجام شود. شما باید با گذشت زمان قابلیت انجام کارهای بسیار بیشتری را داشته باشید و برای این منظور باید با مسائل حل مسئله، سیستم ها، طراحی، پلتفرم ها، چارچوب ها، زبان های برنامه نویسی، ابزارها و البته دامنه آشنایی کامل داشته باشید. مهارت نرم به جای خود، همچنین باید یک سیستم پیچیده رو تو ۵ مین توضیح بدید و تو ۵۰ صفحه ببندیدش. تنها تعداد کمی از "برنامه نویسان" به این سطح می رسند و اینجاست که کمبود واقعی وجود دارد.
اما جواب محکمی که یک نفر داد و من خیلی لذت بردم:
من با فرض شما مخالفت میکنم. من از اوایل سال 1984 برنامهنویسی میکنم و افرادی مانند من به دنبال کار هستند. من برنامهنویسی دستگاههای تعبیه شده برای سیستمهای پیچیده مانند دستگاههای پزشکی انجام میدهم. اگر 10 نفر مانند من پیدا کنم، میتوانم در عرض دو هفته برای آنان شغل دائم و با درآمد بالا پیدا کنم. چرا دو هفته؟ چون من به واقعیت نمیپردازم که چندین پیشنهاد کار از مشتریان یا تماسهای سرد وجود دارد، به دلیل اینکه همیشه فرصتهای بیشتری وجود دارد.
من دارای مدرک BSEE از دانشگاه عمومی قابل قبول میدوستی است. من به زبان برنامهنویسی 'C' برنامهنویسی میکنم و کمی هم C++ (در حال حاضر نه زیاد) و به نیاز نیز کمی C# استفاده میکنم اما در آن خیلی خوب نیستم. من درآمد قابل توجهی با شش رقمی دارم و اگر مایل به جا به جایی در شغل باشم میتوانم بیشتر درآمد داشته باشم.
من با مدارات سختافزاری، حسگرها، دستگاههای آزمایشگاهی و سیستمهای پیچیده کد مینویسم و پول در میآورم. من محصولات جدید را طراحی میکنم (با استفاده از کد قدیمی خودم و اضافه کردن 10٪ جدید).
من نمیدانم چگونه باید به دیگران آموزش دهم که چگونه برنامهنویسی کنند. آنها نمیتوانند آن را درک کنند. من میدانم تجربه و بینش زیادی دارم ولی بیشتر از سال های کاریم هست. افراد به خودی خود کنجکاو نیستند و به این که محصول کامل چگونه عمل میکند، علاقهای ندارند. آنها به وضعیت فعلی شک نمیکنند و محدودیتهای غیر واقعی را مانند آن است که غیرقابل تغییر است، می پذیرند. آنها به یک ایده چسبیده و درباره نحوه کار تحقیق نمیکنند یا چگونه میتواند بهتر اجرا شود یا روش اجرا را تغییر دهند.
من با چند مهندس دیگر که در چهار دهه گذشته بهتر یا بهتر از من بودند، آشنا شدهام، اما آنها بسیار نادر هستند. آنها همیشه کار دارند. من از کار اخراج شدهام و اخراج شدهام، اما پیدا کردن شغل جدید هرگز غیر ممکن نیست و نگران نیستم زیرا میدانم که «آنها» به من بیشتر نیاز دارند تا من به «آنها». تنها چند نفری مانند من وجود دارند و تعداد زیادی از «آنها» وجود دارد. از بابت برگزیده شدن توسط هوش مصنوعی مانند همراه هوا، نگران نیستم، زیرا نمونههای کد کافی وجود ندارد که یک شبکه عصبی را در مورد آنچه که من انجام میدهم و چگونه انجام میدهم، آموزش دهد. تا زمانی که من تصمیم نگیرم که از کار برم یا بمیرم، شغل خواهم داشت.
@ManiFoldsPython
Quora
Quora is a place to gain and share knowledge. It's a platform to ask questions and connect with people who contribute unique insights and quality answers. This empowers people to learn from each other and to better understand the world.
👍8💩1
یکیم تو جوابش اینو نوشته بود اینم خیلی جالب بود 😄
"People just aren't curious" this times 10. I'm not a coder but data and Analytics, the number of professional accountants, engineers etc that use Excel all day but still come to me to do pretty rudimentary stuff, because they have no curiosity. My problem is having too much, I waste time reading about a dozen things at the same time
خودم به شحصه خیلی چیزا رو که شاید نیاز نداشتم یاد بگیرم، یاد گرفتم بخاطر کنجکاو بودن، هرچی علاقه ما به چیزی بیشتر باشه بنظرم بیشتر راجبش کنجکاو میشیم.
و از طرفی چیزایی رو باید یاد میگرفتم ولی هیچوقت سمتشون نرفتم چون کنجکاوم نکردن.
ادم از quora و ردیت میتونه خیلی درس زندگی بگیره 👌
@ManiFoldsPython
"People just aren't curious" this times 10. I'm not a coder but data and Analytics, the number of professional accountants, engineers etc that use Excel all day but still come to me to do pretty rudimentary stuff, because they have no curiosity. My problem is having too much, I waste time reading about a dozen things at the same time
خودم به شحصه خیلی چیزا رو که شاید نیاز نداشتم یاد بگیرم، یاد گرفتم بخاطر کنجکاو بودن، هرچی علاقه ما به چیزی بیشتر باشه بنظرم بیشتر راجبش کنجکاو میشیم.
و از طرفی چیزایی رو باید یاد میگرفتم ولی هیچوقت سمتشون نرفتم چون کنجکاوم نکردن.
ادم از quora و ردیت میتونه خیلی درس زندگی بگیره 👌
@ManiFoldsPython
👍6
Forwarded from Django Expert (Mehran Tarif)
متاسفانه صابر راستیکردار، خالق فونتهای وزیر متن (همون فونت زیبایی که روی تلگرام دسکتاپ و گوگلداکز و... به رایگان ازش استفاده میکنیم) و گندم و شبنم و کلی فونت دیگه، به سرطان مبتلا شده و در وبلاگش در این مورد مطلبی نوشته:
مشاهده مطلب در وبلاگ راستیکردار
اگر از فونتهاش استفاده میکنیم، شاید الان دونیت (حمایت مالی) ما بیشتر از قبل به کارش بیاد.
لینک دونیت:
payping.ir/@saber
🌱 صابر راستی کردار، از جمله بچه های گل روزگار هست که وب فارسی مدیونشه، تنهاش نمیذاریم.
™ @DjangoIR
〰️〰️〰️〰️〰️〰️〰️
© @DjangoEx |
مشاهده مطلب در وبلاگ راستیکردار
اگر از فونتهاش استفاده میکنیم، شاید الان دونیت (حمایت مالی) ما بیشتر از قبل به کارش بیاد.
لینک دونیت:
payping.ir/@saber
🌱 صابر راستی کردار، از جمله بچه های گل روزگار هست که وب فارسی مدیونشه، تنهاش نمیذاریم.
™ @DjangoIR
〰️〰️〰️〰️〰️〰️〰️
© @DjangoEx |
😢8👍1
بحث FastAPI شد, چند تا ریپویی که خیلی کمکم کردن براتون میفرستم 👌
fastapi best practices
FastAPI Project By Seb😍
Backend logic implementation for https://github.com/gothinkster/realworld with awesome FastAPI
Another enterprise fastapi application
Awesome FastAPI
@ManiFoldsPython
fastapi best practices
FastAPI Project By Seb😍
Backend logic implementation for https://github.com/gothinkster/realworld with awesome FastAPI
Another enterprise fastapi application
Awesome FastAPI
@ManiFoldsPython
GitHub
GitHub - zhanymkanov/fastapi-best-practices: FastAPI Best Practices and Conventions we used at our startup
FastAPI Best Practices and Conventions we used at our startup - zhanymkanov/fastapi-best-practices
❤6
این یکی خیلی سخته. 15 مین طول کشید تا سوالشو طراحی کنم 😁
یک ارفاق کردم همینکه sum رو به دست بیارین کافیه. ولی بعدا جواب تک تکشو میذارم و توضیح میدم که چرا چنین شد.
اگه برای پاسخ به این سوال دارین trace میکنید که چه تغییری تو لیست رخ داده, کاملا مسیر رو دارین اشتباه میرین.
برای پاسخ دادن به result و درآوردن true یا false بودن هر کدوم, نیازی به حفظ کردن تغییرات ندارین.
@ManiFoldsPython
یک ارفاق کردم همینکه sum رو به دست بیارین کافیه. ولی بعدا جواب تک تکشو میذارم و توضیح میدم که چرا چنین شد.
اگه برای پاسخ به این سوال دارین trace میکنید که چه تغییری تو لیست رخ داده, کاملا مسیر رو دارین اشتباه میرین.
برای پاسخ دادن به result و درآوردن true یا false بودن هر کدوم, نیازی به حفظ کردن تغییرات ندارین.
@ManiFoldsPython
👎5
Python BackendHub
این یکی خیلی سخته. 15 مین طول کشید تا سوالشو طراحی کنم 😁 یک ارفاق کردم همینکه sum رو به دست بیارین کافیه. ولی بعدا جواب تک تکشو میذارم و توضیح میدم که چرا چنین شد. اگه برای پاسخ به این سوال دارین trace میکنید که چه تغییری تو لیست رخ داده, کاملا مسیر رو دارین…
اگه برای پاسخ به این سوال دارین trace میکنید که چه تغییری تو لیست رخ داده, کاملا مسیر رو دارین اشتباه میرین.
برای پاسخ دادن به result و درآوردن true یا false بودن هر کدوم, نیازی به حفظ کردن تغییرات ندارین
برای پاسخ دادن به result و درآوردن true یا false بودن هر کدوم, نیازی به حفظ کردن تغییرات ندارین
Python BackendHub
این یکی خیلی سخته. 15 مین طول کشید تا سوالشو طراحی کنم 😁 یک ارفاق کردم همینکه sum رو به دست بیارین کافیه. ولی بعدا جواب تک تکشو میذارم و توضیح میدم که چرا چنین شد. اگه برای پاسخ به این سوال دارین trace میکنید که چه تغییری تو لیست رخ داده, کاملا مسیر رو دارین…
برای پاسخ دادن به این سوال کافیه درک پایتون خوبی داشته باشیم.
وقتی از [:] استفاده میکنیم یعنی memory address اون آبجکت عوض میشه و کپی میشه تو یک آدرس دیگه. در حالی که وقتی از a = b استفاده میکنیم یعنی رفرنس میشه و مموری آدرس همونه. پس هر بلایی سر first بیاد سره third هم میاد. پس
اما مورد چهار بخاطر بحث interning که تو پایتون وجود داره و اعداد -5 تا 256 کش میشن. ولی برای اعداد بعد از 256 دیگه همیشه false هستند. پس مورد بعدی هم false میشه بخاطر وجود عدد 300
من یک مطلبی قبلا تو کانال فرستادم صرفا با دو پارگراف اخرش موافق بودم, وگرنه وقتی همچین سوالاتی تو interview های شرکت های بزرگ پرسیده میشه مثل ماکروفاست, پس قطعا اشتباه نیست.
@ManiFoldsPython
وقتی از [:] استفاده میکنیم یعنی memory address اون آبجکت عوض میشه و کپی میشه تو یک آدرس دیگه. در حالی که وقتی از a = b استفاده میکنیم یعنی رفرنس میشه و مموری آدرس همونه. پس هر بلایی سر first بیاد سره third هم میاد. پس
first is thirdو بخاطر [ : ] استفاده شده هم ممورس آدرس second عوض شده. پس اگه دقیقا عینه هم باشن چون رفرنسشون یکی نیست و یکجا ذخیره نشدن همیشه is براشون false هست.
> True
second is thirdمورد چهار دقیقا last و first یکی هستن چون هیچ بلایی سره first نیاوردیم.
> False
اما مورد چهار بخاطر بحث interning که تو پایتون وجود داره و اعداد -5 تا 256 کش میشن. ولی برای اعداد بعد از 256 دیگه همیشه false هستند. پس مورد بعدی هم false میشه بخاطر وجود عدد 300
a = 300سکند ایندکس اولش تغییری نکرده, و 1 مونده. طبق بحث بالا
b = 300
a is b
> False
a = 1بعضی دوستان تو چند ثانیه حل کردن, حل همچین سوالی باعث میشه شما درک بهتری از مموری و رفرنس داشته باشین. اینطوری باعث میشه کد scalable بنویسید!
b = 1
a is b
> True
من یک مطلبی قبلا تو کانال فرستادم صرفا با دو پارگراف اخرش موافق بودم, وگرنه وقتی همچین سوالاتی تو interview های شرکت های بزرگ پرسیده میشه مثل ماکروفاست, پس قطعا اشتباه نیست.
@ManiFoldsPython
👍4😱1
Python BackendHub
این کوییز برای درک پایتونه و فرش نگه داشتن ذهن 😅 درجه سختی: آسان @ManiFoldsPython
در خصوص این کد, اولا یک اشتباهی کردم باید first = 1 هم میذاشتم که نکته اش سنگین تر میشد.
من یک اشتباهی تو کد نویسیم کرده بودم و یک نفر به من گفت, رفتم و دلیلش رو پیدا کردم و به این نکته رسیدم که الان میخوام بهتون بگم.
بحث namespace هست و mutable و immutable و دو تا از scope های پایتون, global و local هست. یکی از بحث های ابتدایی پایتون 😅
خب اولا وقتی تابع رو با یک Argument ای صدا میزنیم, اون Argument اگه mutable باشه, اگه اون Argument رو تغییر بدیم باعث میشه تو سطح global scope هم تغییر کنه.
یعنی دقیقا بلایی که سره second اومد.
اما چرا lst که لوکال بود تو تابع f بلایی سره lst اصلی نیاورد؟ چون اون local variable هست و دیگه Argument نیست که مربوط باشه به lst.
اما اگه first = 1 میذاشتیم تو لوکال, بازم بلایی سره var نمیومد. var همیشه 3 میمونه. چرا؟ چون immutable هست.
و حالا شاید متوجه شده باشین که چرا
❌ Don't use mutable values as default value in function parameters
@ManiFoldsPython
من یک اشتباهی تو کد نویسیم کرده بودم و یک نفر به من گفت, رفتم و دلیلش رو پیدا کردم و به این نکته رسیدم که الان میخوام بهتون بگم.
بحث namespace هست و mutable و immutable و دو تا از scope های پایتون, global و local هست. یکی از بحث های ابتدایی پایتون 😅
خب اولا وقتی تابع رو با یک Argument ای صدا میزنیم, اون Argument اگه mutable باشه, اگه اون Argument رو تغییر بدیم باعث میشه تو سطح global scope هم تغییر کنه.
یعنی دقیقا بلایی که سره second اومد.
اما چرا lst که لوکال بود تو تابع f بلایی سره lst اصلی نیاورد؟ چون اون local variable هست و دیگه Argument نیست که مربوط باشه به lst.
اما اگه first = 1 میذاشتیم تو لوکال, بازم بلایی سره var نمیومد. var همیشه 3 میمونه. چرا؟ چون immutable هست.
و حالا شاید متوجه شده باشین که چرا
❌ Don't use mutable values as default value in function parameters
@ManiFoldsPython
Forwarded from CodeNaline | کدنالین
قسمت نهم از فصل دوم کدنالین، مانی.
این قسمت رو با مانی از ترکیه خواهیم داشت. مانی این روزها داخل ترکیه زندگی میکنه و تاجایی که خبر دارم داره تلاش میکنه به هلند مهاجرت کاری کنه. و تاجایی بازم خبر دارم :)، رزومه هاش خیلی خوب مصاحبه میگیره. مانی متخصص پایتون و بکاند، در کراولینگ تخصص داره و پروژههایی هم با chatGPT زده :).
سوالاتتتون میتونید زیر همین پست بپرسید ❤️✨🤝
@CodeNaline
این قسمت رو با مانی از ترکیه خواهیم داشت. مانی این روزها داخل ترکیه زندگی میکنه و تاجایی که خبر دارم داره تلاش میکنه به هلند مهاجرت کاری کنه. و تاجایی بازم خبر دارم :)، رزومه هاش خیلی خوب مصاحبه میگیره. مانی متخصص پایتون و بکاند، در کراولینگ تخصص داره و پروژههایی هم با chatGPT زده :).
سوالاتتتون میتونید زیر همین پست بپرسید ❤️✨🤝
@CodeNaline
Forwarded from Python for Data Science
کد بالا رو در دو محیط مختلف اجرا کنید
یکی در یک فایل .py
دیگری در فایل .ipynb
نتایج متفاوت هست!
چرا؟ 😊😊
🔎 @py4ds
یکی در یک فایل .py
دیگری در فایل .ipynb
نتایج متفاوت هست!
چرا؟ 😊😊
🔎 @py4ds
👍2👎1🤮1
Forwarded from Python for Data Science
📌اختلاف این دو حالت برمیگرده به مبحث Interning که در اینجا برای مقادیر Integer در بازهی
🔺اگر دارید توی هر نوعی از شل توی پایتون (python shell , ipython, ...) کد میزنید باید حواستون باشه که این مقادیر یکبار ساخته میشن و برای همیشه از همونا استفاده میشه اما مقادیر خارج از این بازه هربار که لازم باشه از اول ساخته میشه. یعنی id اونها ممکنه با هم فرق داشته باشه
🔺اما اگر کل کد توی فایل .py به پایتون بدید اونو بهینه میکنه و تا زمانی که لازم هست مقادیر integer خارج از اون بازه رو نگه میداره. بنابراین این مقادیر هم مثل مقادیر ذکر شده در بازهی فوق فقط یکبار ساخته میشن.
🔹خلاصه هرجایی دارید از is استفاده میکنید حسابی حواستون رو جمع کنید که یه وقت اچتباهی کد نزنید! 😁
🔎 @py4ds
[-5, 256]هستند.
🔺اگر دارید توی هر نوعی از شل توی پایتون (python shell , ipython, ...) کد میزنید باید حواستون باشه که این مقادیر یکبار ساخته میشن و برای همیشه از همونا استفاده میشه اما مقادیر خارج از این بازه هربار که لازم باشه از اول ساخته میشه. یعنی id اونها ممکنه با هم فرق داشته باشه
🔺اما اگر کل کد توی فایل .py به پایتون بدید اونو بهینه میکنه و تا زمانی که لازم هست مقادیر integer خارج از اون بازه رو نگه میداره. بنابراین این مقادیر هم مثل مقادیر ذکر شده در بازهی فوق فقط یکبار ساخته میشن.
🔹خلاصه هرجایی دارید از is استفاده میکنید حسابی حواستون رو جمع کنید که یه وقت اچتباهی کد نزنید! 😁
🔎 @py4ds
Medium
3 Facts of the Integer Caching in Python
Understand some confusing results made by Python