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

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

لینک چنل ایتا:
https://eitaa.com/learnpythonicy
Download Telegram
✔️ مثال ساده از ماژول 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

#بدانیم | #پردازش_تصویر | آموزش پایتون
✔️ تشخیص اشیا در زمان واقعی با YOLOv8 و OpenCV

ویژگی‌های کلیدی
- پیشرفته‌ترین مدل تشخیص اشیا (YOLOv8)
- پردازش زنده با وبکم
- دقت بالا در شناسایی 80 کلاس مختلف
- بهینه‌سازی شده برای اجرا روی CPU/GPU

کاربردهای انقلابی
- سیستم‌های نظارت هوشمند
- رباتیک و خودروهای خودران
- تحلیل تصاویر ماهواره‌ای

نصب:
pip install ultralytics opencv-python


🎬 پیشنهاد محتوای ویدیویی:
- نمایش عملکرد زنده روی اشیا مختلف
- مقایسه دقت YOLOv8 با نسخه‌های قبلی
- آموزش تنظیم پارامترها برای سناریوهای خاص

#ultralytics | #cv2 | @learnpythonicy
🎭 تشخیص احساسات چهره با نمایش همزمان تصویر و نتایج

import deepface as DeepFace
import cv2
import matplotlib.pyplot as plt
import numpy as np

# شروع دوربین
cap = cv2.VideoCapture(0)

while True:
ret, frame = cap.read()
if not ret:
break

try:
# تحلیل احساسات
results = DeepFace.analyze(frame, actions=['emotion'], enforce_detection=False)
emotion = results[0]['dominant_emotion']
emotions = results[0]['emotion']

# رسم نمودار احساسات
plt.clf() # پاک کردن نمودار قبلی
plt.bar(emotions.keys(), emotions.values(), color='skyblue')
plt.title(f'Dominant Emotion: {emotion}')
plt.ylim(0, 100)

# تبدیل نمودار به تصویر OpenCV
fig = plt.gcf()
fig.canvas.draw()
plot_img = np.array(fig.canvas.renderer.buffer_rgba())
plot_img = cv2.cvtColor(plot_img, cv2.COLOR_RGBA2BGR)

# نمایش ترکیبی
combined = np.vstack((
cv2.resize(frame, (640, 360)),
cv2.resize(plot_img, (640, 360))
))

cv2.imshow('Face Analysis - Live', combined)

except Exception as e:
print(f"خطا: {e}")
cv2.imshow('Face Analysis - Live', frame)

if cv2.waitKey(1) == ord('q'):
break

cap.release()
cv2.destroyAllWindows()


✔️ ویژگی‌های منحصر به فرد

- نمایش زنده تصویر دوربین + نمودار احساسات در یک پنجره
- آپدیت لحظه‌ای نمودار با تغییر حالات چهره
- بهینه‌سازی عملکرد با enforce_detection=False برای جلوگیری از خطا

🛠 راه‌اندازی آسان

1. نصب کتابخانه‌ها:
pip install deepface opencv-python matplotlib numpy


2. اجرای کد:
python face_emotion.py


#deepface | #cv2 | #matplotlib | #numpy | @learnpythonicy

> *برای دقت بیشتر می‌توانید مدل‌های سفارشی مانند VGG-FER را بارگذاری کنید:*
> DeepFace.build_model("VGG-Fer")
✔️ تحلیل داده‌های فروش با Pandas

چرا این کد کاربردی‌ست؟
- آنالیز سریع فروش با محاسبه درآمد کل
- شناسایی پرفروش‌ترین محصولات با مرتب‌سازی
- قالب حرفه‌ای برای گزارش‌گیری

کاربردهای عملی:
1. گزارش‌گیری ماهانه فروش
2. تحلیل عملکرد محصولات
3. پیش‌بینی موجودی انبار

#pandas | @learnpythonicy

> *برای ذخیره خروجی به Excel: df.to_excel('sales_report.xlsx')*
✔️ بازی تخته و توپ با پایتون (مشابه Breakout)

راه‌اندازی بازی:
1. نصب کتابخانه:
pip install pygame


🎮 ویژگی‌های بازی:
- حرکت تخته با کلیدهای چپ/راست
- حذف آجرها هنگام برخورد توپ
- سیستم امتیازدهی (هر آجر 10 امتیاز)
- پایان بازی وقتی توپ به پایین صفحه برسد
- پیام پیروزی وقتی همه آجرها شکسته شوند

#pygame | @learnpythonicy

> *برای اضافه کردن صدا: pygame.mixer.Sound() را بررسی کنید!* 🔊
امروز تو یه کدنویسی به ارور برخوردم
برای همین پست امروز مربوط خطاهای پایتون هست😌🤓
✔️ 5 خطای پرکاربرد پایتون که همه می‌بینن!

1️⃣ NameError: 
"وقتی از متغیری استفاده کنی که تعریفش نکردی!"
print(undefined_var) # خطا!

2️⃣ IndentationError:
"فراموش کردن تو رفتگی یا فاصله‌های نادرست"
if True:
print("Hello") # خطا!

3️⃣ TypeError:
"انجام عملیات روی نوع‌های ناسازگار"
"10" + 5 # خطا!

4️⃣ IndexError:
"دسترسی به خونه‌ای از لیست که وجود نداره"
lst = [1, 2]
print(lst[10]) # خطا!

5️⃣ KeyError:
"درخواست کلیدی که توی دیکشنری نیست"
data = {"name": "Ali"}
print(data["age"]) # خطا!


#error | #خطا | @learnpythonicy | #codeBites


> *برای مشاهده کامل خطاها: dir(__builtins__)*
✔️ توضیح کد پردازش تصویر با OpenCV:

این کد سه عملیات اصلی روی تصاویر انجام می‌دهد:

1. خواندن تصویر از فایل:

   image = cv2.imread('photo.jpg')  # بارگذاری تصویر از مسیر مشخص


2. تغییر اندازه تصویر به 300×300 پیکسل:

   resized = cv2.resize(image, (300, 300))  # تغییر ابعاد با حفظ نسبت


3. برش قسمتی از تصویر (مستطیل با مختصات مشخص):

   cropped = image[100:400, 200:500]  # ارتفاع: 100-400px، عرض: 200-500px


4. نمایش نتیجه در پنجره جدید:

   cv2.imshow('Result', resized)  # نمایش تصویر تغییرسایز شده
cv2.waitKey(0) # توقف برنامه تا فشار کلید توسط کاربر


🔅 نکات کاربردی:
- اگر تصویر بارگذاری نشود، image برابر None خواهد بود

- برای ذخیره تصویر پردازش شده از cv2.imwrite() استفاده کنید

- اعداد در برش تصویر به صورت [Y_start:Y_end, X_start:X_end] هستند

#cv2 | @learnpythonicy

> *این کد پایه‌ای برای پروژه‌های بینایی ماشین و ویرایش تصویر است!*
✔️ تولید نقاشی دیجیتال با پایتون (ترکیب OpenCV + تصادفی‌سازی)

ویژگی‌ها
1. تولید هنر دیجیتال کاملاً تصادفی
2. ترکیب رنگ‌های رندوم در هر اجرا
3. خروجی منحصر به فرد در هر بار اجرا
4. ذخیره خودکار اثر تولیدی

نحوه کار
- ساخت بوم سفید 500x500 پیکسلی
- رسم 50 دایره با رنگ و موقعیت تصادفی
- اضافه کردن امضای "Python Art"
- نمایش و ذخیره نتیجه

#cv2 | #numpy | @learnpythonicy

> *برای اثر پیچیده‌تر، می‌توانید خطوط/مثلث‌های رندوم هم اضافه کنید!*
4
آموزش پایتون
✔️ تولید نقاشی دیجیتال با پایتون (ترکیب OpenCV + تصادفی‌سازی) ویژگی‌ها 1. تولید هنر دیجیتال کاملاً تصادفی 2. ترکیب رنگ‌های رندوم در هر اجرا 3. خروجی منحصر به فرد در هر بار اجرا 4. ذخیره خودکار اثر تولیدی نحوه کار - ساخت بوم سفید 500x500 پیکسلی - رسم 50…
import cv2
import numpy as np

# ایجاد بوم سفید
canvas = np.ones((500, 500, 3), dtype=np.uint8) * 255

# تولید 50 دایره رندوم
for _ in range(50):
color = np.random.randint(0, 256, 3).tolist()
center = (np.random.randint(50, 450), np.random.randint(50, 450))
radius = np.random.randint(10, 50)
cv2.circle(canvas, center, radius, color, -1) # -1 یعنی دایره پررنگ

# اضافه کردن متن هنری
font = cv2.FONT_HERSHEY_SCRIPT_COMPLEX
cv2.putText(canvas, 'Python Art', (150, 250), font, 2, (0, 0, 0), 2)

# نمایش اثر هنری
cv2.imshow('Digital Painting', canvas)
cv2.waitKey(0)
cv2.imwrite('python_art.jpg', canvas) # ذخیره اثر
3
✔️ سیستم تشخیص حرکت با OpenCV در پایتون

import cv2

# باز کردن دوربین
cap = cv2.VideoCapture(0)

# خواندن اولین فریم (برای مقایسه بعدی)
ret, frame1 = cap.read()
frame1 = cv2.flip(frame1, 1)
gray1 = cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY)
gray1 = cv2.GaussianBlur(gray1, (21, 21), 0)

while True:
ret, frame2 = cap.read()
if not ret:
break

frame2 = cv2.flip(frame2, 1)
gray2 = cv2.cvtColor(frame2, cv2.COLOR_BGR2GRAY)
gray2 = cv2.GaussianBlur(gray2, (21, 21), 0)

# محاسبه تفاوت بین دو فریم
diff = cv2.absdiff(gray1, gray2)
thresh = cv2.threshold(diff, 25, 255, cv2.THRESH_BINARY)[1]
thresh = cv2.dilate(thresh, None, iterations=2)

# پیدا کردن کانتور حرکت‌ها
contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

motion_detected = False
for contour in contours:
if cv2.contourArea(contour) < 1000:
continue
motion_detected = True
(x, y, w, h) = cv2.boundingRect(contour)
cv2.rectangle(frame2, (x, y), (x+w, y+h), (0, 255, 0), 2)

if motion_detected:
cv2.putText(frame2, "Motion Detected!", (10, 30), cv2.FONT_HERSHEY_SIMPLEX,
1, (0, 0, 255), 2)

cv2.imshow("Motion Detector", frame2)

# بروزرسانی فریم مرجع
gray1 = gray2

if cv2.waitKey(1) == ord('q'):
break

cap.release()
cv2.destroyAllWindows()


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

▪️ کاربردها
1. سیستم‌های امنیتی
2. نظارت بر حیوانات خانگی
3. شمارش افراد
4. تعامل حرکتی با کامپیوتر

▪️ ایده توسعه
- اضافه کردن ذخیره خودکار ویدئو هنگام حرکت
- ارسال نوتیفیکیشن از طریق تلگرام
- حساسیت قابل تنظیم با اسلایدر

#cv2 | @learnpythonicy
✔️ مثال ساده با ماژول random در پایتون

import random

# تولید عدد تصادفی بین 1 تا 10
random_number = random.randint(1, 10)
print("عدد تصادفی:", random_number)

# انتخاب تصادفی از لیست
fruits = ["سیب", "موز", "پرتقال", "انگور"]
random_fruit = random.choice(fruits)
print("میوه تصادفی:", random_fruit)

# ترکیب تصادفی لیست
random.shuffle(fruits)
print("لیست ترکیب شده:", fruits)


خروجی نمونه:
عدد تصادفی: 7
میوه تصادفی: پرتقال
لیست ترکیب شده: ['موز', 'انگور', 'سیب', 'پرتقال']


کاربرد
- ساخت بازی‌های ساده
- نمونه‌گیری تصادفی از داده‌ها
- تست نرم‌افزار با مقادیر تصادفی

#random | @learnpython

> *برای اعداد اعشاری از random.uniform(a, b) استفاده کنید!*
✔️ تفاوت return و yield در پایتون

🔹 دستور return (خروج معمولی)
- عملکرد: تابع را تمام می‌کند و مقدار را برمی‌گرداند
- حافظه: فقط یک مقدار را برمی‌گرداند
- مثال

  def sum_numbers(a, b):
return a + b # تابع پایان می‌یابد

result = sum_numbers(3, 5) # 8


🔸 دستور yield (تابع مولد - Generator)
- عملکرد: تابع را موقتاً متوقف می‌کند و مقدار را برمی‌گرداند (حالت را حفظ می‌کند)
- حافظه: مقادیر را یک‌به‌یک تولید می‌کند (بهینه برای داده‌های حجیم)
- مثال

  def count_up_to(n):
i = 1
while i <= n:
yield i # هر بار یک عدد تولید می‌کند
i += 1

for num in count_up_to(5):
print(num) # چاپ اعداد 1 تا 5


مقایسه کلیدی
| ویژگی | return | yield |
| تعداد خروجی | یک بار | چندین بار |
| حالت تابع | پاک می‌شود | حفظ می‌شود |
| مصرف حافظه | معمولی | بهینه |
| کاربرد | محاسبات ساده | پردازش داده‌های حجیم |

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

> *از yield برای ساخت جریان داده (Data Stream) استفاده می‌شود!*
🤓3
✔️ مقایسه ۴ دستور کلیدی پایتون در یک نگاه

1️⃣ break vs continue (حلقه‌ها)
# مثال با break (خروج کامل از حلقه)
for i in range(5):
if i == 3:
break # حلقه در i=3 پایان می‌یابد
print(i)
# خروجی: 0 1 2

# مثال با continue (رد شدن یک تکرار)
for i in range(5):
if i == 3:
continue # i=3 رد می‌شود
print(i)
# خروجی: 0 1 2 4


2️⃣ is vs == (مقایسه اشیا)

a = [1, 2]
b = [1, 2]
c = a

# == مقایسه مقدار
print(a == b) # True (مقادیر یکسان)

# is مقایسه هویت (آدرس حافظه)
print(a is b) # False (دو شیء متفاوت)
print(a is c) # True (اشاره‌گر به یک شیء)


▪️ مقایسه کلی

| Command | نوع مقایسه | کاربرد اصلی |

A. | break | کنترل حلقه | خروج زودرس از حلقه |
B. | continue | کنترل حلقه | رد کردن یک تکرار خاص |
C. | is | هویت شیء | بررسی اشتراک حافظه |
D. | == | مقدار | مقایسه محتوای اشیا |


#continue | #break | #is | Learnpythonicy
✔️ ۵ تفاوت کلیدی در پایتون که هر برنامه‌نویسی باید بداند!👇