✔️ پردازش تصویر با 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
#بدانیم | #پردازش_تصویر | آموزش پایتون
✔️ تشخیص اشیا در زمان واقعی با YOLOv8 و OpenCV
ویژگیهای کلیدی
- پیشرفتهترین مدل تشخیص اشیا (YOLOv8)
- پردازش زنده با وبکم
- دقت بالا در شناسایی 80 کلاس مختلف
- بهینهسازی شده برای اجرا روی CPU/GPU
کاربردهای انقلابی
- سیستمهای نظارت هوشمند
- رباتیک و خودروهای خودران
- تحلیل تصاویر ماهوارهای
نصب:
🎬 پیشنهاد محتوای ویدیویی:
- نمایش عملکرد زنده روی اشیا مختلف
- مقایسه دقت YOLOv8 با نسخههای قبلی
- آموزش تنظیم پارامترها برای سناریوهای خاص
#ultralytics | #cv2 | @learnpythonicy
ویژگیهای کلیدی
- پیشرفتهترین مدل تشخیص اشیا (YOLOv8)
- پردازش زنده با وبکم
- دقت بالا در شناسایی 80 کلاس مختلف
- بهینهسازی شده برای اجرا روی CPU/GPU
کاربردهای انقلابی
- سیستمهای نظارت هوشمند
- رباتیک و خودروهای خودران
- تحلیل تصاویر ماهوارهای
نصب:
pip install ultralytics opencv-python
🎬 پیشنهاد محتوای ویدیویی:
- نمایش عملکرد زنده روی اشیا مختلف
- مقایسه دقت YOLOv8 با نسخههای قبلی
- آموزش تنظیم پارامترها برای سناریوهای خاص
#ultralytics | #cv2 | @learnpythonicy
🎭 تشخیص احساسات چهره با نمایش همزمان تصویر و نتایج
✔️ ویژگیهای منحصر به فرد
- نمایش زنده تصویر دوربین + نمودار احساسات در یک پنجره
- آپدیت لحظهای نمودار با تغییر حالات چهره
- بهینهسازی عملکرد با
🛠 راهاندازی آسان
1. نصب کتابخانهها:
2. اجرای کد:
#deepface | #cv2 | #matplotlib | #numpy | @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:
چرا این کد کاربردیست؟
- آنالیز سریع فروش با محاسبه درآمد کل
- شناسایی پرفروشترین محصولات با مرتبسازی
- قالب حرفهای برای گزارشگیری
کاربردهای عملی:
1. گزارشگیری ماهانه فروش
2. تحلیل عملکرد محصولات
3. پیشبینی موجودی انبار
#pandas | @learnpythonicy
> *برای ذخیره خروجی به Excel:
df.to_excel('sales_report.xlsx')*✔️ بازی تخته و توپ با پایتون (مشابه Breakout)
راهاندازی بازی:
1. نصب کتابخانه:
🎮 ویژگیهای بازی:
- حرکت تخته با کلیدهای چپ/راست
- حذف آجرها هنگام برخورد توپ
- سیستم امتیازدهی (هر آجر 10 امتیاز)
- پایان بازی وقتی توپ به پایین صفحه برسد
- پیام پیروزی وقتی همه آجرها شکسته شوند
#pygame | @learnpythonicy
> *برای اضافه کردن صدا:
راهاندازی بازی:
1. نصب کتابخانه:
pip install pygame
🎮 ویژگیهای بازی:
- حرکت تخته با کلیدهای چپ/راست
- حذف آجرها هنگام برخورد توپ
- سیستم امتیازدهی (هر آجر 10 امتیاز)
- پایان بازی وقتی توپ به پایین صفحه برسد
- پیام پیروزی وقتی همه آجرها شکسته شوند
#pygame | @learnpythonicy
> *برای اضافه کردن صدا:
pygame.mixer.Sound() را بررسی کنید!* 🔊امروز تو یه کدنویسی به ارور برخوردم
برای همین پست امروز مربوط خطاهای پایتون هست😌🤓
برای همین پست امروز مربوط خطاهای پایتون هست😌🤓
✔️ 5 خطای پرکاربرد پایتون که همه میبینن!
#error | #خطا | @learnpythonicy | #codeBites
> *برای مشاهده کامل خطاها:
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. خواندن تصویر از فایل:
2. تغییر اندازه تصویر به 300×300 پیکسل:
3. برش قسمتی از تصویر (مستطیل با مختصات مشخص):
4. نمایش نتیجه در پنجره جدید:
🔅 نکات کاربردی:
- اگر تصویر بارگذاری نشود،
- برای ذخیره تصویر پردازش شده از
- اعداد در برش تصویر به صورت
#cv2 | @learnpythonicy
> *این کد پایهای برای پروژههای بینایی ماشین و ویرایش تصویر است!*
این کد سه عملیات اصلی روی تصاویر انجام میدهد:
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
> *برای اثر پیچیدهتر، میتوانید خطوط/مثلثهای رندوم هم اضافه کنید!*
ویژگیها
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 در پایتون
▪️ ویژگیهای پروژه
- تشخیص حرکت در زمان واقعی
- فیلتر نویز با گوسیبلور
- مستطیل سبز حول ناحیه متحرک
- هشدار متنی هنگام تشخیص حرکت
▪️ کاربردها
1. سیستمهای امنیتی
2. نظارت بر حیوانات خانگی
3. شمارش افراد
4. تعامل حرکتی با کامپیوتر
▪️ ایده توسعه
- اضافه کردن ذخیره خودکار ویدئو هنگام حرکت
- ارسال نوتیفیکیشن از طریق تلگرام
- حساسیت قابل تنظیم با اسلایدر
#cv2 | @learnpythonicy
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 | @learnpython
> *برای اعداد اعشاری از
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️⃣
2️⃣
▪️ مقایسه کلی
| Command | نوع مقایسه | کاربرد اصلی |
A. | break | کنترل حلقه | خروج زودرس از حلقه |
B. | continue | کنترل حلقه | رد کردن یک تکرار خاص |
C. | is | هویت شیء | بررسی اشتراک حافظه |
D. | == | مقدار | مقایسه محتوای اشیا |
#continue | #break | #is | Learnpythonicy
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
✔️ ۵ تفاوت کلیدی در پایتون که هر برنامهنویسی باید بداند!
لیست (List) VS تاپل (Tuple)
کپی سطحی (Shallow Copy) VS کپی عمیق (Deep Copy)
متغیرهای کلاس (Class) VS متغیرهای نمونه (Instance)
متدهای معمولی (Instance Method) VS متدهای استاتیک (Static Method)
ژنراتورها (Generator) VS لیستها (List Comprehension)
▪️نکات طلایی
- از تاپل برای دادههای ثابت استفاده کنید
- برای کپی ساختارهای تو در تو حتما از
- متدهای استاتیک برای توابع کمکی مناسبند
- ژنراتورها برای پردازش دادههای حجیم ایدهآل هستند
#بدانیم | @learnpythonicy
> *این تفاوتها را در مصاحبههای شغلی هم میپرسند!* 💼
لیست (List) VS تاپل (Tuple)
لیست = [۱, ۲, ۳] # قابل تغییر
لیست[۰] = ۱۰ # مجاز
تاپل = (۱, ۲, ۳) # تغییرناپذیر
تاپل[۰] = ۱۰ # خطا!
کپی سطحی (Shallow Copy) VS کپی عمیق (Deep Copy)
import copy
لیست_اصلی = [[۱, ۲], [۳, ۴]]
کپی_سطحی = copy.copy(لیست_اصلی) # فقط اشیا سطح اول کپی میشوند
کپی_عمیق = copy.deepcopy(لیست_اصلی) # تمام سطوح کپی میشوند
متغیرهای کلاس (Class) VS متغیرهای نمونه (Instance)
class مثال:
متغیر_کلاس = "مشترک" # بین همه نمونهها
def __init__(self):
self.متغیر_نمونه = "اختصاصی" # برای هر نمونه جداگانه
متدهای معمولی (Instance Method) VS متدهای استاتیک (Static Method)
class مثال:
@staticmethod
def متد_استاتیک(): # بدون self
print("نیاز به نمونه ندارد")
def متد_معمولی(self): # نیاز به self
print("نیاز به نمونه دارد")
ژنراتورها (Generator) VS لیستها (List Comprehension)
# لیستکامپرینشن (تمام محاسبات یکجا)
لیست = [x**2 for x in range(1000000)] # مصرف حافظه بالا
# ژنراتور (مصرف بهینه حافظه)
ژنراتور = (x**2 for x in range(1000000)) # مقادیر یک به یک
▪️نکات طلایی
- از تاپل برای دادههای ثابت استفاده کنید
- برای کپی ساختارهای تو در تو حتما از
deepcopy استفاده کنید - متدهای استاتیک برای توابع کمکی مناسبند
- ژنراتورها برای پردازش دادههای حجیم ایدهآل هستند
#بدانیم | @learnpythonicy
> *این تفاوتها را در مصاحبههای شغلی هم میپرسند!* 💼
✔️ 10 Python One-Liners That Will Blow Your Mind!
1️⃣ Swap Variables
2️⃣ List Comprehension
3️⃣ Lambda Function
4️⃣ Read File
5️⃣ Factorial
6️⃣ Fibonacci Sequence
7️⃣ Reverse String
8️⃣ Flatten List
9️⃣ Check Prime
🔟 Web Server
> *Warning: Don't overuse them in production code!*
#PythonTricks | #codeBites | @LearnPythonIcy
Which one is your favorite? Drop a comment! ⤵️
1️⃣ Swap Variables
a, b = 10, 5; a, b = b, a
2️⃣ List Comprehension
squares = [x**2 for x in range(10)]
3️⃣ Lambda Function
add = lambda x, y: x + y
4️⃣ Read File
lines = [line.strip() for line in open('file.txt')]5️⃣ Factorial
import math; fact = math.factorial(5)
6️⃣ Fibonacci Sequence
fib = lambda n: n if n <= 1 else fib(n-1) + fib(n-2)
7️⃣ Reverse String
reverse = "hello"[::-1]
8️⃣ Flatten List
flat_list = [item for sublist in [[1,2],[3,4]] for item in sublist]
9️⃣ Check Prime
is_prime = lambda n: all(n % i != 0 for i in range(2, int(n**0.5)+1))
🔟 Web Server
python -m http.server 8000
> *Warning: Don't overuse them in production code!*
#PythonTricks | #codeBites | @LearnPythonIcy
Which one is your favorite? Drop a comment! ⤵️
✔️ 5 دستور پایتون که مثل کلید میانبر عمل میکنند!
1️⃣ اجرای سرور تست سریع
📌 کاربرد: راهاندازی فوری یک سرور محلی برای تست فایلهای HTML/JS
2️⃣ تبدیل لیست به رشته
📌 کاربرد: اتصال آیتمهای لیست با جداکننده دلخواه
3️⃣ معکوس کردن لیست/رشته
📌 کاربرد: برعکس کردن هر دنبالهای بدون تابع
4️⃣ خواندن فایل در یک خط
📌 کاربرد: پردازش سریع خطوط فایل بدون
5️⃣ تعویض مقادیر متغیرها
📌 کاربرد: جابجایی مقادیر بدون متغیر موقت
#بدانیم | @learnpythonicy
#codeBites
1️⃣ اجرای سرور تست سریع
python -m http.server 8000
📌 کاربرد: راهاندازی فوری یک سرور محلی برای تست فایلهای HTML/JS
2️⃣ تبدیل لیست به رشته
words = ['Python', 'is', 'awesome']
sentence = ' '.join(words) # 'Python is awesome'
📌 کاربرد: اتصال آیتمهای لیست با جداکننده دلخواه
3️⃣ معکوس کردن لیست/رشته
my_list = [1, 2, 3]
reversed_list = my_list[::-1] # [3, 2, 1]
📌 کاربرد: برعکس کردن هر دنبالهای بدون تابع
4️⃣ خواندن فایل در یک خط
content = [line.strip() for line in open('data.txt')]📌 کاربرد: پردازش سریع خطوط فایل بدون
.close() (پایتون خودش مدیریت میکند) 5️⃣ تعویض مقادیر متغیرها
a, b = 10, 5
a, b = b, a
📌 کاربرد: جابجایی مقادیر بدون متغیر موقت
#بدانیم | @learnpythonicy
#codeBites
👍2
⚙️ کدهای پایتون چجوری اجرا میشن؟ پشتصحنهای که خیلیا نمیدونن!
وقتی یه فایل .py رو با Python اجرا میکنی، همهچیز به همین سادگی که فکر میکنی نیست. پشتصحنه، مراحل مختلفی طی میشن تا اون کد به خروجی تبدیل بشه
بیاین قدمبهقدم ببینیم چه اتفاقی میافته:
---
🧩 مرحله اول: تجزیه ساختاری یا Parsing
اول از همه، کد بررسی میشه تا از نظر دستوری (Syntax) مشکلی نداشته باشه پایتون ساختار کد رو به یه چیزی بهنام AST (درخت نحوی انتزاعی) تبدیل میکنه
---
🧱 مرحله دوم: ساخت بایتکد (Bytecode)
تو این مرحله، AST به مجموعهای از دستورالعملهای سادهتر بهنام بایتکد تبدیل میشه. این بایتکد معمولاً تو پوشهی pycache ذخیره میشه تا اجراهای بعدی سریعتر باشه
---
⚙️ مرحله سوم: اجرای بایتکد توسط ماشین مجازی پایتون
الان وقتشه که ماشین مجازی پایتون وارد عمل بشه. این موتور، دستورالعملهای بایتکد رو خطبهخط اجرا میکنه.
توی این مرحله همهچیز اتفاق میافته:
✔ اجرای توابع
✔ اختصاص حافظه
✔ هندل کردن ارورها
✔ پردازش متغیرها و عملگرها
---
🧹 مرحله چهارم: مدیریت حافظه و Garbage Collection
پایتون یه سیستم مدیریت حافظهی خودکار داره که یکی از کار هاش اینه که مثلا وقتی یه متغیر دیگه استفاده نشه، این سیستم میاد و اون رو از حافظه پاک میکنه. اینطوری حافظه هدر نمیره.
---
✨ جمعبندی
کدهای پایتون مستقیم اجرا نمیشن. پشتصحنه چند مرحلهی مهم اتفاق میافته:
اگه با این فرآیند آشنا باشی، بهتر میتونی دیباگ کنی، خطاها رو درک کنی و حتی عملکرد کدت رو بهینه کنی.
📌 نکته جالب: بعضی نسخههای پایتون مثل PyPy بهجای تفسیر بایتکد، از JIT Compiler استفاده میکنن که سرعت رو چند برابر میکنه.
منبع | #بدانیم
وقتی یه فایل .py رو با Python اجرا میکنی، همهچیز به همین سادگی که فکر میکنی نیست. پشتصحنه، مراحل مختلفی طی میشن تا اون کد به خروجی تبدیل بشه
بیاین قدمبهقدم ببینیم چه اتفاقی میافته:
---
🧩 مرحله اول: تجزیه ساختاری یا Parsing
اول از همه، کد بررسی میشه تا از نظر دستوری (Syntax) مشکلی نداشته باشه پایتون ساختار کد رو به یه چیزی بهنام AST (درخت نحوی انتزاعی) تبدیل میکنه
---
🧱 مرحله دوم: ساخت بایتکد (Bytecode)
تو این مرحله، AST به مجموعهای از دستورالعملهای سادهتر بهنام بایتکد تبدیل میشه. این بایتکد معمولاً تو پوشهی pycache ذخیره میشه تا اجراهای بعدی سریعتر باشه
---
⚙️ مرحله سوم: اجرای بایتکد توسط ماشین مجازی پایتون
الان وقتشه که ماشین مجازی پایتون وارد عمل بشه. این موتور، دستورالعملهای بایتکد رو خطبهخط اجرا میکنه.
توی این مرحله همهچیز اتفاق میافته:
✔ اجرای توابع
✔ اختصاص حافظه
✔ هندل کردن ارورها
✔ پردازش متغیرها و عملگرها
---
🧹 مرحله چهارم: مدیریت حافظه و Garbage Collection
پایتون یه سیستم مدیریت حافظهی خودکار داره که یکی از کار هاش اینه که مثلا وقتی یه متغیر دیگه استفاده نشه، این سیستم میاد و اون رو از حافظه پاک میکنه. اینطوری حافظه هدر نمیره.
---
✨ جمعبندی
کدهای پایتون مستقیم اجرا نمیشن. پشتصحنه چند مرحلهی مهم اتفاق میافته:
.py → AST → Bytecode اجرای بایتکد → خروجی
اگه با این فرآیند آشنا باشی، بهتر میتونی دیباگ کنی، خطاها رو درک کنی و حتی عملکرد کدت رو بهینه کنی.
📌 نکته جالب: بعضی نسخههای پایتون مثل PyPy بهجای تفسیر بایتکد، از JIT Compiler استفاده میکنن که سرعت رو چند برابر میکنه.
منبع | #بدانیم
👍3