آموزش پایتون
88 subscribers
281 photos
21 videos
81 files
178 links
ارتباط با ما:
@learnpythonicyBot

لینک گروه چت:
https://t.me/learnpythonicychat

لینک چنل ایتا:
https://eitaa.com/learnpythonicy
Download Telegram
🚦 تشخیص رابطه ارث‌بری کلاس‌ها در پایتون

این کد با استفاده از تابع issubclass() بررسی می‌کند که آیا یک کلاس، زیرمجموعه کلاس دیگر است یا نه.
- ابزار مفید برای بررسی سلسله مراتب کلاس‌ها
- کاربرد اصلی در طراحی سیستم‌های شیءگرا و اعتبارسنجی نوع داده
- خروجی بولی (True/False) براساس رابطه ارث‌بری

مثال:
- کلاس Car و Bike هر دو از Vehicle ارث می‌برند 🔚 True
- کلاس Car از Bike ارث می‌برد 🔚 False

#issubclass | @learnpythonicy
3
🔥 مدیریت خطاها در پایتون: از ساده تا حرفه‌ای!

آیا می‌دانستید پایتون ۷ روش مختلف برای مدیریت خطا دارد؟
در این پست همه‌ی آنها را بررسی می‌کنیم:

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
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
چطوری مهندس👀؟؟
👨‍💻4
✔️ ماژول pathlib در پایتون برای مدیریت مسیرها و فایل‌ها کاربرد زیادی داره، ولی خیلی وقت‌ها کمتر ازش استفاده میشه.

در این مثال، از Path برای ساخت و مدیریت مسیر استفاده می‌کنیم. این ماژول خوانا بودن کد رو بالا می‌بره و کار با فایل‌ها رو ساده‌تر می‌کنه. مخصوصاً توی پروژه‌های بزرگ، می‌تونه کمک کنه که مسیرها به راحتی مدیریت بشن.

اینطور کدها معمولاً برای تازه‌کارها به اندازه کافی توجه‌برانگیز نیستند، ولی برای کاربران پیشرفته‌تر، خیلی مفید و کاربردی می‌تونن باشن!

#بدانیم
آیا تا حالا نیاز داشتید بفهمید که توی یک لیست یا متن چه چیزهایی بیشتر تکرار شدن؟ 🤔

✔️ با Counter می‌تونید به راحتی تکرار هر عنصر رو بشمارید و داده‌ها رو تحلیل کنید!

در اینجا، Counter به راحتی به ما نشون می‌ده که هر کدام از آیتم‌ها چقدر تکرار شده‌اند. این ویژگی خیلی کاربردیه وقتی بخواهیم داده‌های بزرگ رو تجزیه و تحلیل کنیم.

#بدانیم | #collections
👍5
✔️ طراحی گل با ماژول Turtle در پایتون!

ویژگی‌های کد:
- ایجاد یک طرح گل با ۳۶ دایره چرخان
- استفاده از ماژول turtle برای گرافیک برداری
- مناسب برای آشنایی با مفاهیم برنامه‌نویسی و هندسه

From: Nginoo

#بدانیم | #turtle | آموزش پایتون
برنامه ای طراحی کنید که شکل تصویر را ترسیم کند🤓

پاسخ در کامنت👇

#بدانیم | #turtle | آموزش پایتون
2
✔️ محاسبه هوشمندانه فاصله بین نقاط

با استفاده از توابع math.dist و math.isclose. این روش برای تشخیص نقاط تقریبا یکسان در محاسبات علمی و پردازش داده‌های مکانی عالی هست. با تنظیم tolerance می‌تونید دقت مقایسه رو کنترل کنید.

#math | @learnpythonicy
✔️ ساخت PDF با FPDF در پایتون

🔅 کاربردهای FPDF:
- ساخت گزارش‌های خودکار
- تولید فاکتور و مدارک رسمی
- خروجی PDF از داده‌های برنامه

🔅 ویژگی‌های کلیدی:
- سبک و ساده برای تولید PDF
- قابلیت اضافه کردن متن، جداول و تصاویر
- تنظیم فونت و استایل متن

#fpdf | @learnpythonicy

> نصب کتابخانه:
> pip install fpdf2
👍1
🔘 خروجی‌ کد بالا کدام است؟

#تست_تایم
Output:
Anonymous Quiz
43%
A
29%
B
29%
C
0%
D
✔️ انتخاب تصادفی ساده در پایتون

شبیه‌سازی پرتاب تاس (اعداد 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. مقاومت در برابر تغییر (تغییر یک بلاک، هش تمام بلاک‌های بعدی را خراب می‌کند)

کاربردهای عملی
- سیستم‌های پرداخت رمزارز
- ردیابی زنجیره تأمین کالا
- ذخیره‌سازی اسناد مهم

نصب پیش‌نیاز
pip install hashlib


#blockchain | @learnpythonicy

کد در کامنت👇
✔️ مثال ساده از ماژول datetime - نمایش تاریخ و ساعت فعلی

from datetime import datetime

# دریافت تاریخ و ساعت فعلی
now = datetime.now()
print("تاریخ و ساعت فعلی:")
print(now.strftime("%Y-%m-%d %H:%M:%S"))


ویژگی‌های کلیدی
- نمایش فرمت‌های مختلف تاریخ/ساعت
- محاسبه اختلاف بین دو تاریخ
- پشتیبانی از تقویم شمسی

کاربردهای سریع
- لاگ‌گیری زمان رویدادها
- مدیریت مهلت‌های پروژه
- برنامه‌های

#datetime | @learnpythonicy

> *برای تاریخ شمسی می‌توانید از کتابخانه jdatetime استفاده کنید.*
✔️ مثال ساده از ماژول os - مدیریت فایل‌ها و پوشه‌ها


کاربردهای اصلی
- مدیریت فایل‌های سیستم
- تغییر مسیر دایرکتوری کار
- اجرای دستورات

نکته
- برای حذف فایل: os.remove("فایل.txt")
- برای بررسی وجود فایل: os.path.exists("فایل.txt")


#os | @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
🪂 سرگرمی با ماژول مخفی پایتون!

import antigravity  


چه اتفاقی می‌افته؟
- یه صفحه وب با کمیک xkcd باز میشه
- درباره قابلیت‌های جالب پایتون توضیح میده

#antigravity | @learnpythonicy
✔️ دیگه نیازی به تغییر متغیر نیست...

بنظرت خروجی کد بالا چی میشه؟؟
✔️ پردازش تصویر با OpenCV و Matplotlib در پایتون


🔍 مراحل پردازش:
1️⃣ خواندن تصویر از مسیر مشخص
2️⃣ تبدیل رنگ BGR به RGB برای نمایش صحیح
3️⃣ تبدیل به تصویر خاکستری
4️⃣ اعمال فیلتر گوسی برای بلور کردن
5️⃣ استخراج لبه‌ها با الگوریتم Canny
6️⃣ نمایش تمام مراحل در یک پنجره

کاربردها:
- بینایی ماشین
- پردازش تصاویر پزشکی
- سیستم‌های تشخیص چهره

#cv2 | #numpy | #matplotlib | #opencv | @learnpythonicy

#بدانیم | #پردازش_تصویر | آموزش پایتون