𝐶𝑜𝑑𝑒 𝐶𝑎𝑡
140 subscribers
48 photos
37 videos
3 files
20 links
A cat 🐈‍⬛ wandering through the world of code.

Python • Django • Web • Tech •BackEnd
ــــــــــــــــــــــــــــــــــــــــــــــــــ
The Margins Channel:
@HashiaHa
Discussion:
@Hashia0

Directory: t.me/CodeCat_Dev?direct
Download Telegram
از زمانی که ده یا دوازده سال بیشتر نداشتم، به شدت با کارتون سیندرلا مخالف بودم. چون در آن کارتون، دختران و زنان فقط به فکر ازدواج بودند و به آن بها میدادند. متأسفانه، نه تنها این کارتون، بلکه اکثر کارتون های مشابه، همین موضوع را به عنوان هدف اصلی خود دنبال میکردند.

اما چندی پیش، به طور تصادفی به فیلم موزیکال جدید سیندرلا برخوردم. از آنجا که موزیکال بود، تصمیم گرفتم فقط نگاهی سرسری به آن بیندازم؛ مخصوصاً که شنیده بودم داستان این فیلم با کارتون تفاوت دارد. راست میگفتند! در این نسخه، سیندرلا در برابر نامادری ظالمش میایستد و جوابش را میدهد. او بسیار زرنگ و شوخدطبع است و حتی به پادشاه هم اهمیتی نمیدهد. تنها چیزی که برایش مهم است، «افسانه شخصی» خودش است.

حالا خیلی خوشحالم که این فیلم را دیدم. بالاخره داریم به جایی میرسیم که دغدغه ی اصلی دختران و زنان فقط ازدواج نیست و آنها در قدم اول به فکر خودشان هستند. برای من که یک فمینیست هستم، این تغییر واقعاً ارزشمند و مهم است.
This media is not supported in your browser
VIEW IN TELEGRAM
𝐶𝑜𝑑𝑒 𝐶𝑎𝑡
💀 Sticker
من وقتی به error میخورم
🐍 یک ترفند پایتون که زندگیت رو متحول میکنه!

همه‌مون عادت کردیم برای دیباگ کردن از print استفاده کنیم، ولی معمولاً اینطوری مینویسیم:

print("name:", name)
print("age:", age)
این روش قدیمی و وقت‌گیره، مخصوصاً وقتی کلی متغیر داری.

اما از پایتون ۳.۸ به بالا، یه قابلیت فوق‌العاده به اسم f-string با علامت مساوی اومده که کار رو حسابی راحت میکنه!

به جاش فقط کافیه بنویسی:

print(f"{name=}")
print(f"{age=}")
و خروجی دقیقاً اینطور نمایش داده میشه:
name='Ali'
age=30

✅ دیگه لازم نیست اسم متغیر رو دوباره تایپ کنی یا نگران باشی که پرینت‌هات قاطی بشن.

اما این تازه شروع ماجراست! این قابلیت حتی برای عبارات پیچیده هم کار میکنه:

print(f"{2 + 2 = }") # خروجی: 2 + 2 = 4
print(f"{my_list=}") # کل لیست رو با محتویاتش نمایش میده
💡 کی به کارت میاد؟
وقتی با دیکشنری‌های بزرگ، لیست‌های طولانی یا چندین متغیر همزمان کار داری، این ترفند کلی وقتت رو ذخیره میکنه و کدت رو خواناتر میکنه.

✨ پس از امروز دیگه پرینت‌های قدیمی رو کنار بذار و با این روش حرفه‌ای، دیباگ کن!

#تیک_پایتون

💬 ---> بپرسید
.
برنامه‌نویسی فقط کد زدن نیست؛ بلکه چگونگی تفکر و طرز فکر است.✓✓

#انگیزش
@MPL_Code
اگه هرچه که خوش ت اومد بری سراغ اش
اون وقت شاعر در وصف ات اینو میگه :
آنچه خوبان همه دارند تو ناقص داری
Please open Telegram to view this post
VIEW IN TELEGRAM
sudo rm -rf /*
دقیقاً چیه؟
این دستور، خطرناک‌ترین و مخرب‌ترین فرمان در دنیای لینوکس و مک محسوب میشه.
بیا تک‌تکش رو باز کنیم:
• sudo : به سیستم میگه «من ادمین (مدیر) هستم و هر غلطی دلم خواست میتونم انجام بدم!» (اجرا با دسترسی روت).
• rm : مخفف «حذف» یعنی پاک‌کردن.
• r- : یعنی «بازگشتی»؛ اگر پوشه بود، برو توش و همه چیز رو یکی‌یکی پاک کن.
• f- : یعنی «اجباری»؛ زورکی پاک کن و اصلاً از من سؤال نپرس که «مطمئنی؟»
• /* : یعنی همه چیز از ریشه دیسک سختت. یعنی از فایل‌های ویندوز و لینوکس گرفته تا عکس‌های خاطره‌انگیزت، فیلم‌ها، پروژه‌های دانشگاهی و حتی خود سیستم‌عامل!

کاربردش چیه؟
دقیقاً هیچ کاربرد مفیدی برای یه کاربر عادی نداره! مگر اینکه یه هکر بدجنس باشی که بخوای سیستم یه نفر رو کامل نابود کنی، یا اینکه بخوای یه سرور رو کامل جمع کنی و از نو راه بندازی (آن هم با این دستور کار اشتباهی است و روش استاندارد خودش را دارد).

خطراتش چی هستن؟ (لطفاً این قسمت رو با دقت بخون)

۱. مرگ حتمی سیستم‌عامل: تا ۱۰ ثانیه بعد از زدن این دستور، سیستم‌عاملت از کار میافته و دیگه بالا نمیاد.
۲. نابودی کامل اطلاعات: همه عکس‌ها، مدارک، پروژه‌ها، فیلم‌ها و فایل‌های شخصی‌ات برای همیشه حذف میشن. این فایل‌ها به زباله‌دان نمیرن؛ انگار که هیچ وقت وجود نداشتن!
۳. هیچ راه برگشتی نیست: به جز اینکه از قبل یه پشتیبان کامل گرفته باشی، هیچ راهی برای برگردوندن اطلاعات نیست (هزینه‌های بازیابی هم نجومی و غیرقطعی‌اند).

جالب است بدانی: در بیشتر توزیع‌های مدرن لینوکس، اگر همین دستور را بدون ستاره (sudo rm -rf /) بزنی، سیستم یک محافظ داخلی دارد و بهت خطا میده؛ اما خودت که ستاره (/*) رو آوردی، محافظ رو دور زدی و کار را تمام‌کننده کردی! 😰

حالا سؤال من از تو:
آیا حاضری برای امتحان هم که شده از این دستور استفاده کنی؟ اگه آره، چرا؟ (خواهشاً به هیچ عنوان تستش نکن، حتی روی ماشین مجازی، مگر اینکه واقعاً حوصله نصب دوباره سیستم رو داشته باشی! 😅)

#آموزشی

@MPL_Code
بگذار زندگی ات زیر و رو شود ؛ از کجا معلوم زیر زندگی بهتر از رو نباشد!

@MPL_Code
در پایتون برای مشخص کردن ساختار ها:
List  = []
Set = {}
Tuple = ()

برای اضافه کردن آیتم به هر کدوم
List_name.append 
Set_name.add

Tuple
رو شما بگید چطوری بهش آیتم اضافه کنیم !😉

#تیک_پایتون

@MPL_Code
فقط یک برنامه نویس می‌فهمه تموم کردن یک تسک چه لذتی داره


#انگیزش
ماژول (Module) در پایتون چیست؟

به زبان ساده، ماژول یک فایل پایتونی است که شامل توابع، کلاس‌ها و متغیرهای از پیش نوشته‌شده است. برنامه‌نویسان حرفه‌ای این کدها را نوشته‌اند تا کارهای رایج (مثل کار با تاریخ، ریاضیات، وب، هوش مصنوعی و...) را برای شما آسان کنند.

چرا از ماژول استفاده می‌کنیم؟

· برای جلوگیری از دوباره‌نویسی کد (اصل DRY)
· برای استفاده از توانایی‌های دیگران بدون نیاز به اختراع دوباره چرخ
· برای افزایش سرعت و کیفیت توسعه نرم‌افزار

ماژول‌ها به دو دسته تقسیم می‌شوند:

1. ماژول‌های داخلی (Built-in): مثل math، datetime، os که همراه با خود پایتون نصب می‌شوند.
2. ماژول‌های شخص‌ثالث (Third-party): مثل requests، numpy، django که باید نصبشان کنید.

چگونه ماژول نصب کنیم؟
با استفاده از ابزار pip (مخفف Package Installer for Python) از مخزن رسمی PyPI (Python Package Index):

pip install requests

چطور از ماژول استفاده کنیم؟
با دستور import در کد خود:

import math
print(math.sqrt(16)) # خروجی: 4.0


حالا بگو ببینم تا الان از ماژول ها استفاده کردی اگه آره از کدوم ؟ توی ویندوز یا لینوکس؟😉🧐


#تیک_پایتون


@MPL_Code
(Virtualenv)
یک ابزار برای ایجاد محیط‌های مجزا در پایتون است. در این محیط‌ها، می‌توانید نسخه‌های خاصی از فریم‌ورک‌ها و ماژول‌ها را بدون تأثیر بر سایر پروژه‌ها نصب کنید.


چرا از Virtualenv استفاده می‌کنیم؟

به جای نصب مستقیم روی کل سیستم، از محیط مجازی استفاده می‌کنیم تا:

· از تداخل نسخه‌های مختلف کتابخانه‌ها جلوگیری کنیم.
· برای هر پروژه، وابستگی‌های مخصوص به خود را داشته باشیم.
· به‌راحتی بین پروژه‌ها جابجا شویم بدون نیاز به حذف/نصب مجدد.


خب با مثال بهتره:
مثال ساده:

· پروژه A به Django نسخه 2.2 نیاز دارد.
· پروژه B به Django نسخه 4.0 نیاز دارد.

اگر هر دو را روی سیستم نصب کنید، با خطا و تداخل مواجه می‌شوید.
اما با Virtualenv، برای هر پروژه یک محیط مجزا ساخته و نسخهٔ موردنظر را در همان محیط نصب می‌کنید.


خلاصه:
Virtualenv
محیطی ایزوله برای مدیریت وابستگی‌های هر پروژه به‌صورت جداگانه فراهم می‌کند و از بروز تداخل نسخه‌ها جلوگیری می‌نماید.

#آموزش

@MPL_Code
در زیر قراره در مورد سه موضوعی که برای مبتدی ها خیلی گیج کننده هست ،بخونید

۱. ماژول (Module)

· تعریف: یک فایل متنی با پسوند .py که شامل توابع، کلاس‌ها و متغیرهای پایتون است. کوچک‌ترین واحد قابل استفاده‌ی کد در پایتون.
· مثال: فایل math.py در خود پایتون، یا فایل سفارشی my_tools.py که خودت نوشتی.
· نحوه استفاده:

  import math
print(math.sqrt(25))

# یا
from my_tools import sum_function

---

۲. کتابخانه (Library)

· تعریف: مجموعه‌ای از یک یا چند ماژول (و پکیج) که برای انجام یک وظیفه‌ی خاص کنار هم جمع شده‌اند. کنترل جریان برنامه دست شماست؛ شما مشخص می‌کنید کی و کجا توابع آن را صدا بزنید.
· مثال: requests (برای درخواست HTTP)، Pandas (برای تحلیل داده).
· نحوه استفاده:

  import requests
response = requests.get("https://api.example.com")
print(response.status_code)
# خودت تصمیم گرفتی کی این خط را اجرا کنی

---

۳. فریمورک (Framework)

· تعریف: اسکلت و معماری اصلی یک برنامه. کنترل جریان برنامه دست فریمورک است (اصل وارونگی کنترل). شما فقط قسمت‌های خالی (مانند ویوها یا مدل‌ها) را پر می‌کنید و فریمورک در زمان مناسب، کد شما را صدا می‌زند.
· مثال: Django (برای وب)، Flask (برای وب سبک).
· نحوه استفاده:

  # در فایل views.py جنگو
from django.http import HttpResponse

def my_view(request): # جنگو این تابع را صدا می‌زند، نه تو
return HttpResponse("Hello")

(برای اجرا، دستور python manage.py runserver را می‌دهی و جنگو کل فرآیند را مدیریت می‌کند).

خلاصه کلام:
· ماژول: برای انجام یک کار کوچک و اختصاصی (مثل محاسبه ریشه یا کار روی رشته).
· کتابخانه: برای حل یک مسئله‌ی مشخص بدون دخالت در ساختار کلی برنامه (مثل دریافت دیتا یا تحلیل جدول).
·فریمورک: برای ساخت یک اپلیکیشن کامل از صفر تا صد با کمترین تصمیم‌گیری درباره‌ی معماری (مثل سایت خبری یا فروشگاهی).

#آموزش

@MPL_Code
Please open Telegram to view this post
VIEW IN TELEGRAM