🚦 تشخیص رابطه ارثبری کلاسها در پایتون
این کد با استفاده از تابع
- ابزار مفید برای بررسی سلسله مراتب کلاسها
- کاربرد اصلی در طراحی سیستمهای شیءگرا و اعتبارسنجی نوع داده
- خروجی بولی (True/False) براساس رابطه ارثبری
مثال:
- کلاس
- کلاس
#issubclass | @learnpythonicy
این کد با استفاده از تابع
issubclass() بررسی میکند که آیا یک کلاس، زیرمجموعه کلاس دیگر است یا نه. - ابزار مفید برای بررسی سلسله مراتب کلاسها
- کاربرد اصلی در طراحی سیستمهای شیءگرا و اعتبارسنجی نوع داده
- خروجی بولی (True/False) براساس رابطه ارثبری
مثال:
- کلاس
Car و Bike هر دو از Vehicle ارث میبرند 🔚 True - کلاس
Car از Bike ارث میبرد 🔚 False #issubclass | @learnpythonicy
❤3
🔥 مدیریت خطاها در پایتون: از ساده تا حرفهای!
آیا میدانستید پایتون ۷ روش مختلف برای مدیریت خطا دارد؟
در این پست همهی آنها را بررسی میکنیم:
1️⃣ سادهترین روش (try/except)
2️⃣ چندین خطا در یک بلاک
3️⃣ وقتی خطایی نباشد (else)
4️⃣ همیشه اجرا میشود (finally)
5️⃣ پرتاب خطای سفارشی (raise)
6️⃣ ایجاد خطاهای سفارشی
7️⃣ مدیریت خطا با contextlib (حرفهای)
💎 نکات طلایی:
- از
- دستور
- دستور
#بدانیم | #مدیریت_خطا | آموزش پایتون
آیا میدانستید پایتون ۷ روش مختلف برای مدیریت خطا دارد؟
در این پست همهی آنها را بررسی میکنیم:
1️⃣ سادهترین روش (try/except)
try:
print(10 / 0)
except ZeroDivisionError:
print("خطا: تقسیم بر صفر!")
2️⃣ چندین خطا در یک بلاک
try:
# کد پرخطا
except (TypeError, ValueError) as e:
print(f"خطای نوع داده: {e}")
3️⃣ وقتی خطایی نباشد (else)
try:
result = 10 / 2
except:
print("خطا!")
else:
print(f"نتیجه: {result}") # 5.0
4️⃣ همیشه اجرا میشود (finally)
try:
file = open('data.txt')
except:
print("خطا در باز کردن فایل")
finally:
file.close() # مهم برای آزادسازی منابع
5️⃣ پرتاب خطای سفارشی (raise)
if age < 0:
raise ValueError("سن نمیتواند منفی باشد!")
6️⃣ ایجاد خطاهای سفارشی
class MyCustomError(Exception):
pass
raise MyCustomError("این یک خطای سفارشی است!")
7️⃣ مدیریت خطا با contextlib (حرفهای)
from contextlib import suppress
with suppress(FileNotFoundError):
os.remove('temp.txt') # اگر فایل نبود، خطا نگیر!
💎 نکات طلایی:
- از
try/except برای خطاهای قابل پیشبینی استفاده کنید - دستور
else برای کدهایی که فقط وقتی خطایی نباشد باید اجرا شوند - دستور
finally برای تمیزکاری منابع (مثل بستن فایل/اتصال دیتابیس) #بدانیم | #مدیریت_خطا | آموزش پایتون
🔥 محاسبه میانگین در پایتون با ۷ روش حرفهای!
برای محاسبه میانگین اعداد در پایتون، این تکنیکهای جالب را امتحان کنید:
1️⃣ روش ساده با sum و len
2️⃣ روش شیءگرا با کلاس
3️⃣ روش فانکشنال با reduce
4️⃣ روش کتابخانهای با statistics
5️⃣ روش numpy (بهینه برای آرایههای بزرگ)
6️⃣ روش بازگشتی (حلقهای پنهان)
7️⃣ روش مولد (Generator)
🎯 نکات کلیدی:
- روش statistics برای دادههای آماری ایدهآل است
- روش numpy بهترین انتخاب برای آرایههای بزرگ عددی
- روش مولد برای محاسبه میانگین متحرک عالی است
چالش:
تابعی بنویسید که میانگین وزنی محاسبه کند...
#PythonMagic | @learnpythonicy
برای محاسبه میانگین اعداد در پایتون، این تکنیکهای جالب را امتحان کنید:
1️⃣ روش ساده با sum و len
numbers = [1, 2, 3, 4, 5]
average = sum(numbers) / len(numbers)
2️⃣ روش شیءگرا با کلاس
class AverageCalculator:
def __init__(self, numbers):
self.numbers = numbers
def calculate(self):
return sum(self.numbers) / len(self.numbers)
avg = AverageCalculator([1, 2, 3, 4, 5]).calculate()
3️⃣ روش فانکشنال با reduce
from functools import reduce
average = reduce(lambda x, y: x + y, numbers) / len(numbers)
4️⃣ روش کتابخانهای با statistics
from statistics import mean
average = mean(numbers)
5️⃣ روش numpy (بهینه برای آرایههای بزرگ)
import numpy as np
average = np.mean(numbers)
6️⃣ روش بازگشتی (حلقهای پنهان)
def recursive_avg(nums, n=None, total=None):
if n is None:
return recursive_avg(nums, len(nums), 0)
if n == 0:
return total / len(nums)
return recursive_avg(nums, n-1, total+nums[n-1])
7️⃣ روش مولد (Generator)
def generate_average(nums):
total = 0
count = 0
for num in nums:
total += num
count += 1
yield total / count
# استفاده:
avg_gen = generate_average([1, 2, 3, 4, 5])
last_avg = [avg for avg in avg_gen][-1]
🎯 نکات کلیدی:
- روش statistics برای دادههای آماری ایدهآل است
- روش numpy بهترین انتخاب برای آرایههای بزرگ عددی
- روش مولد برای محاسبه میانگین متحرک عالی است
چالش:
تابعی بنویسید که میانگین وزنی محاسبه کند...
def weighted_avg(values, weights):
return sum(v * w for v, w in zip(values, weights)) / sum(weights)
#PythonMagic | @learnpythonicy
👍2
✔️ ماژول
در این مثال، از
اینطور کدها معمولاً برای تازهکارها به اندازه کافی توجهبرانگیز نیستند، ولی برای کاربران پیشرفتهتر، خیلی مفید و کاربردی میتونن باشن!
#بدانیم
pathlib در پایتون برای مدیریت مسیرها و فایلها کاربرد زیادی داره، ولی خیلی وقتها کمتر ازش استفاده میشه.در این مثال، از
Path برای ساخت و مدیریت مسیر استفاده میکنیم. این ماژول خوانا بودن کد رو بالا میبره و کار با فایلها رو سادهتر میکنه. مخصوصاً توی پروژههای بزرگ، میتونه کمک کنه که مسیرها به راحتی مدیریت بشن.اینطور کدها معمولاً برای تازهکارها به اندازه کافی توجهبرانگیز نیستند، ولی برای کاربران پیشرفتهتر، خیلی مفید و کاربردی میتونن باشن!
#بدانیم
آیا تا حالا نیاز داشتید بفهمید که توی یک لیست یا متن چه چیزهایی بیشتر تکرار شدن؟ 🤔
✔️ با
در اینجا،
#بدانیم | #collections
✔️ با
Counter میتونید به راحتی تکرار هر عنصر رو بشمارید و دادهها رو تحلیل کنید! در اینجا،
Counter به راحتی به ما نشون میده که هر کدام از آیتمها چقدر تکرار شدهاند. این ویژگی خیلی کاربردیه وقتی بخواهیم دادههای بزرگ رو تجزیه و تحلیل کنیم.#بدانیم | #collections
👍5
✔️ طراحی گل با ماژول Turtle در پایتون!
ویژگیهای کد:
- ایجاد یک طرح گل با ۳۶ دایره چرخان
- استفاده از ماژول turtle برای گرافیک برداری
- مناسب برای آشنایی با مفاهیم برنامهنویسی و هندسه
From: Nginoo
#بدانیم | #turtle | آموزش پایتون
ویژگیهای کد:
- ایجاد یک طرح گل با ۳۶ دایره چرخان
- استفاده از ماژول turtle برای گرافیک برداری
- مناسب برای آشنایی با مفاهیم برنامهنویسی و هندسه
From: Nginoo
#بدانیم | #turtle | آموزش پایتون
✔️ محاسبه هوشمندانه فاصله بین نقاط
با استفاده از توابع
#math | @learnpythonicy
با استفاده از توابع
math.dist و math.isclose. این روش برای تشخیص نقاط تقریبا یکسان در محاسبات علمی و پردازش دادههای مکانی عالی هست. با تنظیم tolerance میتونید دقت مقایسه رو کنترل کنید. #math | @learnpythonicy
✔️ ساخت PDF با FPDF در پایتون
🔅 کاربردهای FPDF:
- ساخت گزارشهای خودکار
- تولید فاکتور و مدارک رسمی
- خروجی PDF از دادههای برنامه
🔅 ویژگیهای کلیدی:
- سبک و ساده برای تولید PDF
- قابلیت اضافه کردن متن، جداول و تصاویر
- تنظیم فونت و استایل متن
#fpdf | @learnpythonicy
> نصب کتابخانه:
🔅 کاربردهای FPDF:
- ساخت گزارشهای خودکار
- تولید فاکتور و مدارک رسمی
- خروجی PDF از دادههای برنامه
🔅 ویژگیهای کلیدی:
- سبک و ساده برای تولید PDF
- قابلیت اضافه کردن متن، جداول و تصاویر
- تنظیم فونت و استایل متن
#fpdf | @learnpythonicy
> نصب کتابخانه:
> pip install fpdf2
👍1
✔️ انتخاب تصادفی ساده در پایتون
شبیهسازی پرتاب تاس (اعداد 1 تا 6)
انتخاب تصادفی نوبت بازیکنان (Sara یا Ali)
👈 ایده برای ارتقا:
1. سیستم نوبت دهی هوشمند:
- ابتدا به صورت تصادفی انتخاب میکند چه کسی بازی را شروع کند
- نتیجه تاس به همراه نام بازیکن چاپ میشود
2. قانون شانس مجدد:
- اگر بازیکن عدد 6 بیاورد (شرط if)
- پیام "شانس مجدد" نمایش داده میشود
- در این حالت نوبت به بازیکن بعدی نمیرسد و همان بازیکن دوباره تاس میاندازد
3. قابلیت توسعه:
- میتوانید لیست بازیکنان را گسترش دهید
- میتوانید قانون 6 آوردن را تغییر دهید (مثلا 2 بار پشت هم 6 بیاورد)
- میتوانید امتیازات را هم ذخیره کنید
کاربرد عملی
- پیادهسازی بازیهای رومیزی مثل ماروپله
- سیستم نوبتدهی در بازیهای گروهی
- شبیهسازی شرایط تصادفی در برنامهنویسی
#random | learnpythonicy
👇👇👇👇
شبیهسازی پرتاب تاس (اعداد 1 تا 6)
انتخاب تصادفی نوبت بازیکنان (Sara یا Ali)
👈 ایده برای ارتقا:
1. سیستم نوبت دهی هوشمند:
- ابتدا به صورت تصادفی انتخاب میکند چه کسی بازی را شروع کند
- نتیجه تاس به همراه نام بازیکن چاپ میشود
2. قانون شانس مجدد:
- اگر بازیکن عدد 6 بیاورد (شرط if)
- پیام "شانس مجدد" نمایش داده میشود
- در این حالت نوبت به بازیکن بعدی نمیرسد و همان بازیکن دوباره تاس میاندازد
3. قابلیت توسعه:
- میتوانید لیست بازیکنان را گسترش دهید
- میتوانید قانون 6 آوردن را تغییر دهید (مثلا 2 بار پشت هم 6 بیاورد)
- میتوانید امتیازات را هم ذخیره کنید
کاربرد عملی
- پیادهسازی بازیهای رومیزی مثل ماروپله
- سیستم نوبتدهی در بازیهای گروهی
- شبیهسازی شرایط تصادفی در برنامهنویسی
#random | learnpythonicy
👇👇👇👇
import random
players = ["Sara", "Ali"]
current_player = random.choice(players)
dice_roll = random.randint(1, 6)
print(f"{current_player}'s turn - Rolled: {dice_roll}")
if dice_roll == 6:
print("Bonus turn!")
✔️ مثال ساده پیادهسازی بلاکچین در پایتون
ویژگیهای این پیادهسازی
1. تابع هش (SHA-256) برای ایجاد اثرانگشت دیجیتال
2. زنجیره بلوکها با ارجاع به هش بلاک قبلی
3. مقاومت در برابر تغییر (تغییر یک بلاک، هش تمام بلاکهای بعدی را خراب میکند)
کاربردهای عملی
- سیستمهای پرداخت رمزارز
- ردیابی زنجیره تأمین کالا
- ذخیرهسازی اسناد مهم
نصب پیشنیاز
#blockchain | @learnpythonicy
کد در کامنت👇
ویژگیهای این پیادهسازی
1. تابع هش (SHA-256) برای ایجاد اثرانگشت دیجیتال
2. زنجیره بلوکها با ارجاع به هش بلاک قبلی
3. مقاومت در برابر تغییر (تغییر یک بلاک، هش تمام بلاکهای بعدی را خراب میکند)
کاربردهای عملی
- سیستمهای پرداخت رمزارز
- ردیابی زنجیره تأمین کالا
- ذخیرهسازی اسناد مهم
نصب پیشنیاز
pip install hashlib
#blockchain | @learnpythonicy
کد در کامنت👇
✔️ مثال ساده از ماژول
ویژگیهای کلیدی
- نمایش فرمتهای مختلف تاریخ/ساعت
- محاسبه اختلاف بین دو تاریخ
- پشتیبانی از تقویم شمسی
کاربردهای سریع
- لاگگیری زمان رویدادها
- مدیریت مهلتهای پروژه
- برنامههای
#datetime | @learnpythonicy
> *برای تاریخ شمسی میتوانید از کتابخانه
datetime - نمایش تاریخ و ساعت فعلیfrom datetime import datetime
# دریافت تاریخ و ساعت فعلی
now = datetime.now()
print("تاریخ و ساعت فعلی:")
print(now.strftime("%Y-%m-%d %H:%M:%S"))
ویژگیهای کلیدی
- نمایش فرمتهای مختلف تاریخ/ساعت
- محاسبه اختلاف بین دو تاریخ
- پشتیبانی از تقویم شمسی
کاربردهای سریع
- لاگگیری زمان رویدادها
- مدیریت مهلتهای پروژه
- برنامههای
#datetime | @learnpythonicy
> *برای تاریخ شمسی میتوانید از کتابخانه
jdatetime استفاده کنید.*✔️ مثال ساده از ماژول os - مدیریت فایلها و پوشهها
کاربردهای اصلی
- مدیریت فایلهای سیستم
- تغییر مسیر دایرکتوری کار
- اجرای دستورات
نکته
- برای حذف فایل:
- برای بررسی وجود فایل:
#os | @learnpythonicy
> این ماژول برای اتوماسیون کارهای سیستمی عالی است!
کاربردهای اصلی
- مدیریت فایلهای سیستم
- تغییر مسیر دایرکتوری کار
- اجرای دستورات
نکته
- برای حذف فایل:
os.remove("فایل.txt") - برای بررسی وجود فایل:
os.path.exists("فایل.txt") #os | @learnpythonicy
> این ماژول برای اتوماسیون کارهای سیستمی عالی است!
✔️ تولید اعداد تصادفی در پایتون با ۷ روش حرفهای!
برای تولید اعداد تصادفی در پایتون، این تکنیکهای کاربردی را امتحان کنید:
1️⃣ ماژول
2️⃣ محدوده عددی
3️⃣ انتخاب تصادفی از لیست
4️⃣ نمونهگیری بدون جایگزینی
5️⃣ توزیع نرمال
6️⃣ برای نتایج تکرارپذیر
7️⃣ ماژول
🗝 روش ویژه: NumPy برای آرایههای تصادفی
نکات طلایی
- برای امنیت از
- برای علم داده از
- دستور
#PythonMagic | #random | #seed | #secrets | #numpy | learnpythonicy
> *برای بازیها، شبیهسازیها و رمزنگاری کاربرد دارد*
برای تولید اعداد تصادفی در پایتون، این تکنیکهای کاربردی را امتحان کنید:
1️⃣ ماژول
random پایهimport random
print(random.random()) # عدد اعشاری بین 0 تا 1
2️⃣ محدوده عددی
print(random.randint(1, 100)) # عدد صحیح بین 1 تا 100
3️⃣ انتخاب تصادفی از لیست
items = ['a', 'b', 'c']
print(random.choice(items)) # انتخاب یک آیتم
4️⃣ نمونهگیری بدون جایگزینی
print(random.sample(range(100), 5)) # 5 عدد منحصر بفرد
5️⃣ توزیع نرمال
print(random.gauss(0, 1)) # توزیع گاوسی
6️⃣ برای نتایج تکرارپذیر
random.seed(42) # ثابت کردن نتایج تصادفی
7️⃣ ماژول
secrets برای امنیتimport secrets
print(secrets.randbelow(100)) # ایمن برای رمزنگاری
🗝 روش ویژه: NumPy برای آرایههای تصادفی
import numpy as np
print(np.random.rand(3,3)) # ماتریس 3x3 تصادفی
نکات طلایی
- برای امنیت از
secrets استفاده کنید- برای علم داده از
numpy.random استفاده شود- دستور
seed برای دیباگ مفید است#PythonMagic | #random | #seed | #secrets | #numpy | learnpythonicy
> *برای بازیها، شبیهسازیها و رمزنگاری کاربرد دارد*
🤓2
🪂 سرگرمی با ماژول مخفی پایتون!
چه اتفاقی میافته؟
- یه صفحه وب با کمیک xkcd باز میشه
- درباره قابلیتهای جالب پایتون توضیح میده
#antigravity | @learnpythonicy
import antigravity
چه اتفاقی میافته؟
- یه صفحه وب با کمیک xkcd باز میشه
- درباره قابلیتهای جالب پایتون توضیح میده
#antigravity | @learnpythonicy
✔️ پردازش تصویر با OpenCV و Matplotlib در پایتون
🔍 مراحل پردازش:
1️⃣ خواندن تصویر از مسیر مشخص
2️⃣ تبدیل رنگ BGR به RGB برای نمایش صحیح
3️⃣ تبدیل به تصویر خاکستری
4️⃣ اعمال فیلتر گوسی برای بلور کردن
5️⃣ استخراج لبهها با الگوریتم Canny
6️⃣ نمایش تمام مراحل در یک پنجره
کاربردها:
- بینایی ماشین
- پردازش تصاویر پزشکی
- سیستمهای تشخیص چهره
#cv2 | #numpy | #matplotlib | #opencv | @learnpythonicy
#بدانیم | #پردازش_تصویر | آموزش پایتون
🔍 مراحل پردازش:
1️⃣ خواندن تصویر از مسیر مشخص
2️⃣ تبدیل رنگ BGR به RGB برای نمایش صحیح
3️⃣ تبدیل به تصویر خاکستری
4️⃣ اعمال فیلتر گوسی برای بلور کردن
5️⃣ استخراج لبهها با الگوریتم Canny
6️⃣ نمایش تمام مراحل در یک پنجره
کاربردها:
- بینایی ماشین
- پردازش تصاویر پزشکی
- سیستمهای تشخیص چهره
#cv2 | #numpy | #matplotlib | #opencv | @learnpythonicy
#بدانیم | #پردازش_تصویر | آموزش پایتون