Python3
200 subscribers
100 photos
6 videos
26 files
518 links
🎓 آموزش و پروژه‌های Python
آموزش‌های کاربردی و پروژه‌های عملی Python برای همه سطوح. 🚀
Download Telegram
🟢 4 خبر مهم Python امروز 🟢

1. انتشار Python 3.13 RC2
نسخه آزمایشی دوم Python 3.13 منتشر شد. این نسخه تمرکز ویژه‌ای بر بهبود عملکرد و امکانات جدید زبان دارد. همچنین، سیستم مدیریت خطا در این نسخه تقویت شده است و قبل از انتشار نسخه نهایی قابل تست است.
⚙️ #Python3 #RC2 #PerformanceBoost

2. معرفی ابزار مدیریت وابستگی‌های جدید به نام uv
ابزار جدید uv که توسط تیم سازنده Ruff ساخته شده است، به عنوان یک جایگزین سریع‌تر و قوی‌تر برای ابزارهای مدیریت پکیج پایتون مثل pip معرفی شد. این ابزار که با زبان Rust نوشته شده، سرعت بسیار بیشتری دارد و در حال تبدیل شدن به یک استاندارد جدید برای توسعه‌دهندگان پایتون است.
⚡️ #uv #PythonTools #RustPowered

3. نتایج نظرسنجی 2023 توسعه‌دهندگان پایتون
نظرسنجی امسال نشان می‌دهد که توسعه وب و علم داده همچنان محبوب‌ترین حوزه‌های استفاده از پایتون هستند. همچنین افزایش علاقه به خودکارسازی و هوش مصنوعی در میان توسعه‌دهندگان پایتون به چشم می‌خورد.
📊 #PythonSurvey #WebDevelopment #DataScience

4. اعلام برنامه‌های PyCon US 2024
برنامه کامل کنفرانس PyCon 2024 که در پیتسبورگ برگزار خواهد شد، اعلام شد. این کنفرانس با ثبت تعداد بی‌سابقه‌ای از پیشنهادات سخنرانی و حضور سخنرانان کلیدی، در ماه می برگزار خواهد شد.
🎤 #PyConUS2024 #PythonCommunity #KeynoteSpeakers

(اینجا کلیک کن تا بیشتر بدونی)

#پایتون #اخبار_پایتون #مدیریت_پکیج #هوش_مصنوعی #PyCon
👍2
آموزش: شروع کار با SymPy برای محاسبات نمادین ریاضی


🔍 مقدمه:
ماژول SymPy یکی از ابزارهای قدرتمند و کمتر شناخته شده پایتون برای محاسبات نمادین ریاضی است. برخلاف دیگر کتابخانه‌های ریاضی مانند numpy که برای محاسبات عددی استفاده می‌شود، SymPy برای انجام محاسبات نمادین، مثل دیفرانسیل و انتگرال، حل معادلات جبری، و حتی جبر خطی به کار می‌رود. این کتابخانه به شما اجازه می‌دهد به جای عدد، با نمادهای ریاضی کار کنید و نتایج به صورت کاملاً دقیق و نه تقریبی به دست آورید.

بخش ۱: نصب و تنظیم SymPy
اولین گام برای شروع کار، نصب SymPy است. برای نصب آن، کافی است دستور زیر را اجرا کنید:

pip install sympy

پس از نصب، با اجرای کد زیر می‌توانید کتابخانه را وارد کنید:

import sympy as sp

بخش ۲: ایجاد و کار با نمادهای ریاضی

یکی از مهم‌ترین ویژگی‌های SymPy، توانایی کار با نمادهای ریاضی است. به جای استفاده از اعداد، شما می‌توانید متغیرهای ریاضی را به عنوان نماد معرفی کنید.

مثال: تعریف متغیرهای ریاضی

x, y = sp.symbols('x y')

# محاسبه جمع و ضرب نمادین
expr = x + 2 * y
print(expr)

توضیح:
در اینجا، ما دو متغیر x و y را به صورت نمادین تعریف کردیم و یک عبارت ساده ایجاد کردیم.

بخش ۳: مشتق و انتگرال نمادین

یکی از کاربردهای مهم SymPy، محاسبه مشتق و انتگرال به صورت نمادین است.

مثال: محاسبه مشتق

# محاسبه مشتق تابع x**3 + 2*x
expr = x**3 + 2*x
derivative = sp.diff(expr, x)
print(derivative)

نتیجه:
خروجی 3*x**2 + 2 خواهد بود که نشان‌دهنده مشتق نمادین این تابع است.

مثال: محاسبه انتگرال

# محاسبه انتگرال تابع x**2
integral = sp.integrate(x**2, x)
print(integral)

نتیجه:
خروجی x**3/3 خواهد بود که انتگرال نمادین تابع را نشان می‌دهد.

بخش ۴: حل معادلات جبری

SymPy می‌تواند معادلات جبری را به صورت نمادین حل کند.

مثال: حل معادله درجه دوم

# حل معادله x**2 - 5*x + 6 = 0
solutions = sp.solve(x**2 - 5*x + 6, x)
print(solutions)

نتیجه:
خروجی [2, 3] خواهد بود که دو ریشه این معادله را نشان می‌دهد.

بخش ۵: سری تیلور و تقریب‌های ریاضی

SymPy قابلیت محاسبه سری تیلور توابع ریاضی را دارد. سری تیلور تقریب چندجمله‌ای یک تابع است.

مثال: سری تیلور تابع سینوس در نقطه ۰

taylor_series = sp.series(sp.sin(x), x, 0, 6)
print(taylor_series)

نتیجه:
خروجی به شکل x - x**3/6 + x**5/120 + O(x**6) خواهد بود که نشان‌دهنده تقریب سری تیلور تا مرتبه ۵ برای سینوس اسبخش ۶: جبر خطی و ماتریس‌هاها**

SymPy امکان کار با ماتریس‌ها و انجام محاسبات جبر خطی مانند دترمینان، وارون، و مقادیر ویژه را نیز فراهم می‌کنمثال: ایجاد یک ماتریس و محاسبه دترمینانان**

# تعریف یک ماتریس
matrix = sp.Matrix([[1, 2], [3, 4]])

# محاسبه دترمینان
det = matrix.det()
print(det)

**نتیجه:**
خروجی -2 خواهد بود که نشان‌دهنده دترمینان این ماتریبخش ۷: کاربرد SymPy در حل معادلات دیفرانسیلرانسیل**

SymPy به شما این امکان را می‌دهد که معادلات دیفرانسیل را به صورت نمادین حلمثال: حل معادله دیفرانسیل سادهل ساده**

# تعریف متغیرها
f = sp.Function('f')
eq = sp.Eq(f(x).diff(x, x) - 3*f(x), 0)

# حل معادله
solution = sp.dsolve(eq, f(x))
print(solution)

**نتیجه:**
خروجی C1*exp(sqrt(3)*x) + C2*exp(-sqrt(3)*x) خواهد بود که جواب کلی این معادله دیفرانسیل است.


SymPy یکی از کتابخانه‌های بسیار قدرتمند پایتون برای محاسبات نمادین است که در بسیاری از شاخه‌های علمی، مهندسی و ریاضیات کاربرد دارد. از حل معادلات جبری تا مشتق، انتگرال و حتی حل معادلات دیفرانسیل، این ماژول ابزارهایی قدرتمند را در اختیار شما قرار می‌دهد. با توجه به توانایی‌های گسترده SymPy، می‌توان از آن برای انجام بسیاری از کارهای پیچیده ریاضی و مهندسی استفاده کرد.

👈بزن رو ابن متن تا بیشتر بدونی👉

#پایتون #ریاضیات #sympy #محاسبات_نمادین #مشتق #انتگرال #آموزش_پایتون
👍2
🟠 نکته مهم: اشتباهات رایج هنگام کار با توابع در Python 🟠

1. استفاده اشتباه از Mutable Objects به عنوان آرگومان پیش‌فرض
یکی از رایج‌ترین اشتباهات، استفاده از اشیاء تغییرپذیر مثل لیست‌ها یا دیکشنری‌ها به عنوان مقدار پیش‌فرض آرگومان‌ها در توابع است. این کار می‌تواند باعث بروز رفتارهای غیرمنتظره شود. همیشه به جای آن از None استفاده کنید و داخل تابع مقداردهی کنید.
📝 مثال اشتباه:
def append_to_list(value, my_list=[]):
my_list.append(value)
return my_list

📝 مثال صحیح:
def append_to_list(value, my_list=None):
if my_list is None:
my_list = []
my_list.append(value)
return my_list

2. بررسی اشتباه برای مقادیر نادرست (Falsy Values)
گاهی اوقات توسعه‌دهندگان به اشتباه فرض می‌کنند که تمام مقادیر مانند 0, [], یا None را به یک صورت باید بررسی کنند، اما باید توجه داشته باشید که هر کدام معنای خاص خود را دارد.


3. عدم استفاده از توابع بازگشتی به درستی
توابع بازگشتی قدرت زیادی دارند، اما اگر از آن‌ها به درستی استفاده نکنید ممکن است منجر به مصرف بیش از حد حافظه و توقف برنامه شود. مطمئن شوید که شرط پایه برای پایان بازگشت را درست تعریف کرده‌اید.


4. نادیده گرفتن نوع خروجی توابع
یکی از اشتباهات رایج این است که نوع خروجی تابع نادیده گرفته می‌شود و منجر به خطا در منطق برنامه می‌شود. بهتر است همیشه انتظار نوع داده‌ی خروجی مشخصی را داشته باشید یا با تایپ‌هینت‌ها مشخص کنید.

🏷 بزن رو این تا بیشتر یاد بگیری

#پایتون #توابع #اشتباهات_رایج #کدنویسی_صحیح #آموزش
👍2
الگوریتم TNT (Truncated Newton Method)

یکی از روش‌های بهینه‌سازی غیرخطی است که برای حل مسائل بهینه‌سازی بزرگ مقیاس و پیچیده مورد استفاده قرار می‌گیرد. این الگوریتم به نوعی توسعه یافته روش نیوتن است، که هدف اصلی آن کاهش زمان محاسبه و حافظه مصرفی در حل مسائل بزرگ است.

۱. معرفی الگوریتم TNT
در مسائل بهینه‌سازی که نیاز به حداقل‌سازی تابع هزینه پیچیده و غیرخطی دارید، روش نیوتن یکی از گزینه‌هاست. با این حال، روش نیوتن نیاز به محاسبه و معکوس کردن ماتریس هسین (Hessian matrix) دارد که برای مسائل بزرگ مقیاس بسیار زمان‌بر و پرهزینه است. TNT از این محدودیت با استفاده از رویکرد "تقریبی" جلوگیری می‌کند.

ویژگی‌ها:
- نیازی به محاسبه کامل ماتریس هسین ندارد.
- از تخمین‌های تقریبی استفاده می‌کند.
- مناسب برای حل مسائل بهینه‌سازی با ابعاد بالا.

۲. مراحل پیاده‌سازی
گام ۱: تعریف تابع هزینه و گرادیان
در ابتدا باید تابع هزینه (که می‌خواهید بهینه کنید) و گرادیان آن را تعریف کنید.

import numpy as np

# تابع هزینه
def cost_function(x):
return (x[0] - 2)**2 + (x[1] - 3)**2

# گرادیان تابع هزینه
def gradient(x):
return np.array([2 * (x[0] - 2), 2 * (x[1] - 3)])

**گام ۲: تخمین هسین**
در این گام، به جای محاسبه کامل هسین، از تقریب ماتریس هسین استفاده می‌شود که روش‌های مختلفی برای آن وجود دارد.

# تقریب هسین به صورت یک ماتریس قطری
def hessian_approximation(x):
return np.array([[2, 0], [0, 2]]) # برای این مثال ساده، هسین دقیق است

**گام ۳: پیاده‌سازی روش TNT**
برای پیاده‌سازی TNT، نیازی به معکوس کردن کامل ماتریس هسین نیست. به جای آن، از تخمین‌های تقریبی استفاده می‌شود که به صورت مرحله‌ای و با اعمال تکرار‌های نیوتنی اصلاح می‌شود.

# الگوریتم TNT
def tnt_method(x0, tol=1e-6, max_iter=100):
x = x0
for i in range(max_iter):
grad = gradient(x)
hess_approx = hessian_approximation(x)

# حل تقریبی H * p = -grad (پیدا کردن p)
p = -np.linalg.solve(hess_approx, grad)

# به روز رسانی x
x = x + p

# شرط توقف
if np.linalg.norm(grad) < tol:
break

return x

۳. **تست الگوریتم**
برای تست الگوریتم، آن را روی یک مثال ساده اجرا می‌کنیم:

# مقدار اولیه
x0 = np.array([0.0, 0.0])

# اجرا
result = tnt_method(x0)
print("مقدار بهینه:", result)

**خروجی:**
مقدار بهینه: [2. 3.]

۴. **مزایا و معایب**
**مزایا:**
- کاهش هزینه محاسباتی در مقایسه با نیوتن کامل.
معایب:سائل بزرگ مقیاس.

**معایب:**
- ممکن است همگرایی کندتری نسبت به روش‌های دیگر داشته باشد.
- برای برخی مسائلموارد استفاده نیست.

۵. **موارد استفاده**
TNT به خصوص در مسائل بهینه‌سازی بزرگ مقیاس، مانند یادگیری ماشین و مسائل فیزیک محاسباتی، استفاده می‌شود.

بزن رو این تا الگوریت یاد بگیری
👍2
ری اکشن بزنید بعد این امتهان دوباره جون بگیرم
👍5🔥21
سلام دوستان عزیز! 👋

ما همیشه سعی می‌کنیم بهترین آموزش‌ها و مطالب را در اختیار شما قرار دهیم و از حمایت‌های شما نهایت قدردانی را داریم. اگر از مطالب کانال لذت می‌برید و دوست دارید ما را حمایت کنید، می‌توانید کانال ما را بوست کنید و به رشد بیشتر آن کمک کنید. با این کار، نه تنها از ما حمایت می‌کنید، بلکه باعث می‌شوید تا افراد بیشتری به این جامعه‌ی بزرگ آموزشی بپیوندند و از محتوای با کیفیت بهره‌مند شوند.

برای بوست کانال، کافیست روی لینک زیر کلیک کنید و ما را به لیست کانال‌های بوست شده‌ی خود اضافه کنید:
[لینک بوست کانال]

ممنونیم از همراهی و حمایت شما! 🌟
🎯 روش پخش کردن بار پردازشی کد روی تمام هسته‌های CPU برای افزایش سرعت اجرا 🚀

امروزه که پردازنده‌ها چند‌هسته‌ای شده‌اند، یکی از بهترین راه‌های بهینه‌سازی کد و افزایش سرعت اجرای برنامه‌ها، استفاده از تمام هسته‌های CPU است. 🖥️ اگر کد شما فقط روی یک هسته اجرا شود، توانایی‌های کامل سیستم را به کار نمی‌گیرد و سرعت اجرای برنامه کمتر از حد انتظار خواهد بود.

🔍 مقدمه
پردازنده‌های مدرن (CPU) معمولاً دارای چندین هسته هستند که به شما این امکان را می‌دهند تا چندین کار را به طور همزمان اجرا کنید. استفاده از این توانایی‌ها برای تقسیم بار پردازشی به "چند وظیفه‌ای" یا "چند نخی" معروف است. در پایتون، به دلیل محدودیت‌های GIL (Global Interpreter Lock) ممکن است نتوان به راحتی از تمام هسته‌ها استفاده کرد. اما با استفاده از کتابخانه‌های خاص مثل multiprocessing می‌توانید این محدودیت را دور بزنید و بار پردازشی را به خوبی بین هسته‌های مختلف پخش کنید. ⚙️

🚧 موضوع: پخش بار پردازشی با multiprocessing در پایتون
کتابخانه‌ی multiprocessing به شما این امکان را می‌دهد که فرآیندهای مختلفی را به‌طور همزمان اجرا کنید و از همه‌ی هسته‌های CPU بهره ببرید. هر فرآیند مستقل از دیگری عمل می‌کند، بنابراین مشکلات GIL دیگر وجود نخواهد داشت.

💻 مثال کد:

import multiprocessing

def task(n):
print(f"Running task {n}...")

if __name__ == "__main__":
processes = []
for i in range(multiprocessing.cpu_count()): # تعداد هسته‌های CPU
p = multiprocessing.Process(target=task, args=(i,))
processes.append(p)
p.start()

for p in processes:
p.join()

🔍 توضیح کد:
1. ما از کتابخانه‌ی multiprocessing استفاده می‌کنیم که امکان ایجاد فرآیندهای جداگانه برای اجرای کد را فراهم می‌کند. 🧠
2. تابع task یک وظیفه‌ی ساده است که برای هر فرآیند اجرا می‌شود.
3. در قسمت اصلی برنامه، با استفاده از multiprocessing.cpu_count() تعداد هسته‌های CPU را شناسایی کرده و به ازای هر هسته یک فرآیند ایجاد می‌کنیم. 🔄
4. در نهایت، فرآیندها را با start() اجرا می‌کنیم و با join() مطمئن می‌شویم که همه فرآیندها به اتمام برسند.

این روش می‌تواند به طرز چشمگیری سرعت اجرای برنامه‌های شما را افزایش دهد، به خصوص در پردازش‌های سنگین و زمان‌بر.

(اینجا عضو شو تا بیشتر بدونی)

#بهینه_سازی #برنامه_نویسی #چند_نخی #پایتون #CPU #Multiprocessing #افزایش_سرعت #پردازش
👍1
اخبار مهم پیرامون پایتون در 11 سپتامبر 📅🐍

در تاریخ 11 سپتامبر، اخبار و پیشرفت‌های جدید در جامعه پایتون منتشر شد که چندین رویداد و توسعه مهم را پوشش داد. در ادامه به چهار خبر مهم و تازه درباره زبان برنامه‌نویسی پایتون می‌پردازیم:

1. 📢 انتشار نسخه پایدار Python 3.12
در 11 سپتامبر، نسخه پایدار Python 3.12 به طور رسمی منتشر شد. این نسخه دارای بهبودهای قابل توجهی در کارایی و امنیت است. از جمله ویژگی‌های جدید می‌توان به بهینه‌سازی در مدیریت حافظه و بهبود سرعت اجرا در پروژه‌های بزرگ اشاره کرد. همچنین، امکانات جدیدی برای پردازش داده‌ها و پشتیبانی بهتر از چند هسته‌ای بودن پردازنده‌ها به این نسخه افزوده شده است.

2. 🔐 بهبودهای امنیتی جدید برای پایتون در پروژه‌های متن‌باز
جامعه پایتون تلاش‌های خود را برای بهبود امنیت در پروژه‌های متن‌باز دو برابر کرده است. در این راستا، ابزارهایی برای بررسی کدها و ماژول‌ها برای یافتن آسیب‌پذیری‌های امنیتی معرفی شده‌اند. یکی از مهم‌ترین این ابزارها، "Python Security Scanner" است که به توسعه‌دهندگان کمک می‌کند تا در طول توسعه، کدهای خود را از لحاظ امنیت بررسی کنند.

3. 🧠 افزایش محبوبیت پایتون در حوزه هوش مصنوعی و یادگیری ماشینی
گزارشی جدید نشان داد که پایتون همچنان به عنوان محبوب‌ترین زبان برنامه‌نویسی در حوزه هوش مصنوعی و یادگیری ماشینی باقی مانده است. ابزارهایی مانند TensorFlow و PyTorch که با پایتون سازگار هستند، به توسعه‌دهندگان این امکان را می‌دهند که به راحتی مدل‌های هوش مصنوعی را پیاده‌سازی و آموزش دهند. این امر باعث شده تا بسیاری از استارتاپ‌ها و شرکت‌های بزرگ به سمت استفاده از پایتون در پروژه‌های خود حرکت کنند.

4. 🌍 رشد سریع پایتون در کشورهای در حال توسعه
پایتون به دلیل سادگی و امکانات گسترده، در بسیاری از کشورهای در حال توسعه به عنوان زبان اصلی برنامه‌نویسی در حال گسترش است. گزارش‌ها نشان می‌دهد که بسیاری از دانشگاه‌ها و موسسات آموزشی در این کشورها، پایتون را به عنوان زبان اصلی برای آموزش برنامه‌نویسی به دانشجویان انتخاب کرده‌اند. این رشد به کمک جامعه پایتون و پشتیبانی از ترجمه‌های مختلف مستندات آن به زبان‌های محلی صورت گرفته است.

(👉اینجا کلیک کن تا بیشتر بدونی👈)

#پایتون #اخبار_پایتون #برنامه_نویسی #نسخه_جدید #امنیت #هوش_مصنوعی #یادگیری_ماشینی #توسعه_دهندگان
👍1
🔍 نکته پیشرفته برای افراد سینیور پایتون 🐍🚀

💡 نکته پیشرفته: استفاده از تابع‌های توکار پایتون برای بهبود عملکرد و خوانایی کد 📈

یکی از نکات حرفه‌ای برای بهبود عملکرد و خوانایی کد استفاده از تابع‌های توکار (built-in functions) پایتون است. این توابع که توسط خود مفسر پایتون بهینه‌سازی شده‌اند، عملکرد بسیار بهتری نسبت به پیاده‌سازی دستی دارند.

🔧 مثال: استفاده از all() و any()

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

# بررسی اینکه همه عناصر لیست بزرگتر از 10 هستند
numbers = [12, 15, 18, 22]
if all(n > 10 for n in numbers):
print("همه اعداد بزرگتر از 10 هستند")

# بررسی اینکه آیا حداقل یکی از عناصر لیست منفی است
if any(n < 0 for n in numbers):
print("حداقل یک عدد منفی است")

توضیح: استفاده از all() و any() نه تنها کد را خلاصه‌تر و خواناتر می‌کند، بلکه در مقایسه با پیاده‌سازی دستی عملکرد بهتری دارد، چون این توابع بهینه‌شده و در سطح زبان پایتون اجرا می‌شوند. 🚀

(اینجا کلیک کن تا بیشتر یاد بگیری)

#نکات_پیشرفته #بهینه_سازی_کد #پایتون #برنامه_نویسی #سینیور
👍1
🔍 دانستنی مخفی برای تازه‌کارهای پایتون 🐍💡

💡 نکته مخفی: استفاده از else بعد از for و while در پایتون! 😲

بسیاری از برنامه‌نویسان تازه‌کار نمی‌دانند که می‌توان از عبارت else بعد از حلقه‌های for یا while در پایتون استفاده کرد. این بخش زمانی اجرا می‌شود که حلقه بدون استفاده از break به پایان برسد. 👀

🔧 مثال:

for i in range(5):
if i == 3:
break
print(i)
else:
print("حلقه بدون break به پایان رسید")

# خروجی:
# 0
# 1
# 2

توضیح: در این مثال چون حلقه با break متوقف می‌شود، بخش else اجرا نمی‌شود. اما اگر break نباشد، این بخش اجرا خواهد شد!

(اینجا کلیک کن تا بیشتر یاد بگیری)

#دانستنی_پایتون #برنامه_نویسی #نکات_پایتون #مخفی_پایتون
1
Forwarded from Python3
🔍 دانستنی مخفی برای تازه‌کارهای پایتون 🐍💡

💡 نکته مخفی: استفاده از else بعد از for و while در پایتون! 😲

بسیاری از برنامه‌نویسان تازه‌کار نمی‌دانند که می‌توان از عبارت else بعد از حلقه‌های for یا while در پایتون استفاده کرد. این بخش زمانی اجرا می‌شود که حلقه بدون استفاده از break به پایان برسد. 👀

🔧 مثال:

for i in range(5):
if i == 3:
break
print(i)
else:
print("حلقه بدون break به پایان رسید")

# خروجی:
# 0
# 1
# 2

توضیح: در این مثال چون حلقه با break متوقف می‌شود، بخش else اجرا نمی‌شود. اما اگر break نباشد، این بخش اجرا خواهد شد!

(اینجا کلیک کن تا بیشتر یاد بگیری)

#دانستنی_پایتون #برنامه_نویسی #نکات_پایتون #مخفی_پایتون
👍3
جاتون خالی آبم نداره
💔12
شرمنده این همه فاصله میوفته بین پستا یکم طول میکشه تنهایی امشب نمیتونم پست بزارم بازم شرمنده دوستان
👍32🥰1
معرفی ماژول‌های گرافیکی پایتون 🎨🐍

۱. Tkinter
ماژول پیش‌فرض پایتون برای ساخت رابط‌های کاربری ساده و سریع. مناسب برای پروژه‌های کوچک و میان‌رده.

۲. Pygame
کتابخانه‌ای مخصوص توسعه بازی‌های دوبعدی و برنامه‌های گرافیکی تعاملی. مناسب برای کنترل تصاویر، صدا و ورودی‌های کاربر.

3. Kivy
چارچوبی چندسکویی برای ساخت اپلیکیشن‌های موبایل، دسکتاپ و تحت وب. مناسب برای ساخت برنامه‌های چندسکویی با رابط‌های گرافیکی مدرن.

4. PyQt
کتابخانه‌ای پیشرفته برای ساخت رابط‌های کاربری پیچیده دسکتاپی. مناسب برای برنامه‌های حرفه‌ای و تجاری.

5. Pillow
کتابخانه‌ای برای کار با تصاویر و پردازش آن‌ها. قابلیت‌های برش، تغییر اندازه، فیلترگذاری و تبدیل تصاویر.

6. Matplotlib
کتابخانه‌ای قدرتمند برای رسم نمودارها و تصاویر دوبعدی. مناسب برای پروژه‌های علمی و داده‌محور.

7. Plotly
ابزاری برای رسم نمودارهای تعاملی و گرافیک‌های مبتنی بر وب. مناسب برای تحلیل داده‌ها و نمایش آن‌ها به صورت بصری.

8. OpenCV
کتابخانه‌ای برای پردازش تصویر و بینایی کامپیوتری. مناسب برای پروژه‌های پیچیده در زمینه پردازش و تحلیل تصویر.

رو این جا کلیک کن تا بیشتر بدونی

#پایتون #ماژول_گرافیکی #برنامه‌نویسی #طراحی_گرافیک #رابط_کاربری #ساخت_بازی #پردازش_تصویر #نمودار
👍1
پارت ۱: مقدمه‌ای بر ساخت صفحات گرافیکی با پایتون 🎨🐍

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

۱. چرا پایتون برای ساخت صفحات گرافیکی؟
پایتون کتابخانه‌های متنوعی برای کار با گرافیک دارد که از ساده‌ترین تصاویر دوبعدی تا پیچیده‌ترین مدل‌های سه‌بعدی را پوشش می‌دهد. به دلیل این تنوع، می‌توان پایتون را برای کارهای مختلف گرافیکی مورد استفاده قرار داد؛ از طراحی بازی‌ها گرفته تا رسم نمودارها و حتی ساخت برنامه‌های تعاملی.

۲. آشنایی با کتابخانه‌های گرافیکی پایتون 🛠️

۲.۱. Tkinter
یکی از قدیمی‌ترین و پرکاربردترین کتابخانه‌ها برای ساخت رابط گرافیکی در پایتون، Tkinter است. این کتابخانه به صورت پیش‌فرض همراه پایتون نصب می‌شود و به شما اجازه می‌دهد به راحتی پنجره‌های گرافیکی بسازید.
ویژگی‌های بارز Tkinter:
- ساخت فرم‌های ساده و کاربردی
- مناسب برای پروژه‌های کوچک و میان‌رده
- سادگی و انعطاف بالا

نصب Tkinter
اگر Tkinter روی سیستم شما نصب نیست، می‌توانید آن را با دستور زیر نصب کنید:
pip install tk

مثال ساده از Tkinter
در این مثال ساده، یک پنجره گرافیکی ایجاد می‌کنیم:
import tkinter as tk

window = tk.Tk() # ساخت پنجره اصلی
window.title("صفحه گرافیکی با Tkinter") # عنوان پنجره
window.geometry("400x300") # اندازه پنجره

label = tk.Label(window, text="سلام دنیا!", font=("Arial", 14))
label.pack()

window.mainloop() # اجرای بی‌نهایت برنامه

۲.۲. Pygame 🎮
اگر به ساخت بازی‌های دوبعدی علاقه دارید، کتابخانه Pygame برای شما مناسب است. این کتابخانه ابزارهای زیادی برای کنترل تصاویر، صدا و حتی ورودی‌های کاربر فراهم می‌کند.

نصب Pygame
برای نصب Pygame از دستور زیر استفاده کنید:
pip install pygame

مثال ساده از Pygame
در این مثال، یک پنجره بازی ساده ایجاد می‌کنیم:
import pygame

pygame.init()

window = pygame.display.set_mode((400, 300)) # اندازه پنجره
pygame.display.set_caption("صفحه گرافیکی با Pygame")

running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False

window.fill((0, 128, 255)) # رنگ پس‌زمینه
pygame.display.flip() # بروزرسانی پنجره

pygame.quit()

۳. معرفی دیگر کتابخانه‌های گرافیکی
به جز Tkinter و Pygame، کتابخانه‌های دیگری نیز برای ساخت صفحات گرافیکی با پایتون وجود دارند. برخی از این کتابخانه‌ها عبارت‌اند از:
- Kivy: مناسب برای ساخت اپلیکیشن‌های موبایل
- PyQt: مناسب برای ساخت رابط‌های کاربری پیچیده

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

(رو اینجا بزن تا بیشتر یاد بگیری)

#پایتون #آموزش_پایتون #برنامه‌نویسی #ساخت_صفحه_گرافیکی #Tkinter #Pygame #کدنویسی
پارت ۲: جزئیات ساخت صفحات گرافیکی با Tkinter و Pygame 🎮📊

در پارت قبل، با دو کتابخانه مهم Tkinter و Pygame برای ساخت صفحات گرافیکی در پایتون آشنا شدیم. حالا در این بخش به صورت عمیق‌تر به جزئیات هرکدام می‌پردازیم و یاد می‌گیریم که چطور عناصر پیچیده‌تری را به صفحات گرافیکی خود اضافه کنیم.

۱. ساخت صفحات گرافیکی پیشرفته‌تر با Tkinter 🖥️

در پارت قبل یک پنجره ساده با Tkinter ساختیم. حالا می‌خواهیم به آن دکمه‌ها، ورودی‌ها و حتی تعاملات بیشتری اضافه کنیم.

۱.۱. اضافه کردن دکمه‌ها و ورودی‌ها
برای ایجاد تعاملات بیشتر، می‌توان از دکمه‌ها و فیلدهای ورودی استفاده کرد. با استفاده از متد‌های مختلف، می‌توانید عملیات‌های مختلفی مانند خواندن ورودی کاربر و واکنش به فشردن دکمه‌ها را انجام دهید.

مثال: ساخت فرم ساده با دکمه و ورودی متن
import tkinter as tk

# ساخت پنجره اصلی
window = tk.Tk()
window.title("فرم با Tkinter")
window.geometry("400x200")

# برچسب و ورودی متن
label = tk.Label(window, text="نام خود را وارد کنید:")
label.pack()

entry = tk.Entry(window)
entry.pack()

# تابعی برای نمایش متن ورودی
def show_name():
name = entry.get() # گرفتن ورودی کاربر
result_label.config(text=f"سلام، {name}!")

# دکمه‌ای برای تایید و نمایش نتیجه
button = tk.Button(window, text="نمایش نام", command=show_name)
button.pack()

# برچسبی برای نمایش نتیجه
result_label = tk.Label(window, text="")
result_label.pack()

window.mainloop()

۱.۲. استفاده از Canvas برای رسم اشکال
اگر بخواهید اشکال مختلفی را رسم کنید (مثل دایره، مربع یا خط)، می‌توانید از Canvas استفاده کنید.

مثال: رسم اشکال ساده
import tkinter as tk

window = tk.Tk()
window.title("رسم اشکال با Tkinter")

canvas = tk.Canvas(window, width=400, height=300)
canvas.pack()

# رسم یک خط
canvas.create_line(50, 50, 200, 50, fill="blue", width=3)

# رسم یک دایره
canvas.create_oval(50, 100, 150, 200, fill="red")

# رسم یک مستطیل
canvas.create_rectangle(200, 100, 300, 200, fill="green")

window.mainloop()

۱.۳. شخصی‌سازی بیشتر: تغییر رنگ‌ها و فونت‌ها
با Tkinter، به راحتی می‌توانید رنگ‌ها، فونت‌ها و اندازه المان‌های مختلف را شخصی‌سازی کنید. در مثال بالا، رنگ‌ها و اندازه خط را برای اشکال تعریف کردیم. شما همچنین می‌توانید از تنظیمات بیشتر مثل تغییر فونت استفاده کنید.

۲. کار با Pygame برای ساخت بازی‌های دوبعدی 🎮

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

۲.۱. اضافه کردن یک شی متحرک
برای شروع، یک شیء ساده مانند یک مربع یا دایره را اضافه می‌کنیم و آن را در صفحه حرکت می‌دهیم.

مثال: ایجاد یک مربع متحرک
import pygame

pygame.init()

window = pygame.display.set_mode((400, 300))
pygame.display.set_caption("مربع متحرک با Pygame")

# رنگ‌ها
white = (255, 255, 255)
blue = (0, 0, 255)

# موقعیت و اندازه مربع
x, y = 50, 50
width, height = 50, 50
speed = 5

running = True
while running:
pygame.time.delay(50)

for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False

# گرفتن کلیدهای فشرده شده برای حرکت
keys = pygame.key.get_pressed()

if keys[pygame.K_LEFT]:
x -= speed
if keys[pygame.K_RIGHT]:
x += speed
if keys[pygame.K_UP]:
y -= speed
if keys[pygame.K_DOWN]:
y += speed

window.fill(white) # پاک کردن صفحه
pygame.draw.rect(window, blue, (x, y, width, height)) # رسم مربع
pygame.display.update() # به‌روزرسانی صفحه

pygame.quit()

۲.۲. اضافه کردن برخورد (Collision)
در این بخش یاد می‌گیریم که چگونه برخورد بین اشیا را بررسی کنیم. در این مثال، اگر مربع به مرزهای صفحه برخورد کند، حرکت آن متوقف خواهد شد.

مثال: بررسی برخورد مربع با مرزهای صفحه
import pygame

pygame.init()

window = pygame.display.set_mode((400, 300))
pygame.display.set_caption("برخورد در Pygame")

white = (255, 255, 255)
blue = (0, 0, 255)

x, y = 50, 50
width, height = 50, 50
speed = 5

running = True
while running:
pygame.time.delay(50)

for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
👍1
ادامه کد بالا ☝️
keys = pygame.key.get_pressed()

if keys[pygame.K_LEFT] and x > 0:
x -= speed
if keys[pygame.K_RIGHT] and x < 400 - width:
x += speed
if keys[pygame.K_UP] and y > 0:
y -= speed
if keys[pygame.K_DOWN] and y < 300 - height:
y += speed

window.fill(white)
pygame.draw.rect(window, blue, (x, y, width, height))
pygame.display.update()

pygame.quit()

۳. جمع‌بندی 📋

تا اینجا یاد گرفتیم که چگونه با استفاده از Tkinter فرم‌ها و اشکال ساده رسم کنیم و با Pygame بازی‌های ساده دوبعدی بسازیم. هر دو کتابخانه ابزارهای بسیار قدرتمندی دارند و می‌توانید از آن‌ها برای ایجاد پروژه‌های کوچک و بزرگ استفاده کنید.

در پارت سوم، با کتابخانه‌های دیگر مثل Kivy و PyQt آشنا خواهیم شد و به مواردی مانند ساخت اپلیکیشن‌های موبایل و رابط‌های کاربری پیچیده می‌پردازیم.

(بزن رو این تا بیشتر یاد بگیری)

#پایتون #آموزش_پایتون #برنامه‌نویسی #ساخت_صفحه_گرافیکی #Tkinter #Pygame #کدنویسی #طراحی_رابط_کاربری
1
پارت ۳: ساخت اپلیکیشن‌های پیچیده با Kivy و PyQt 📱💻

در این پارت به دو کتابخانه قدرتمند و پیشرفته‌تر یعنی Kivy و PyQt می‌پردازیم که برای ساخت اپلیکیشن‌های پیچیده، حرفه‌ای و حتی چندسکویی مناسب هستند. این کتابخانه‌ها به شما امکان می‌دهند تا اپلیکیشن‌های موبایل، دسکتاپ و رابط‌های کاربری بسیار جذاب و پیچیده طراحی کنید. با هم به بررسی هر کدام می‌پردازیم.

۱. ساخت اپلیکیشن‌های چندسکویی با Kivy 📱🌐

Kivy یک چارچوب چندسکویی متن‌باز است که به شما اجازه می‌دهد با یک کد واحد، اپلیکیشن‌هایی برای اندروید، iOS، ویندوز، لینوکس و macOS بسازید. این کتابخانه برای ساخت اپلیکیشن‌های موبایل و دسکتاپ با رابط کاربری لمسی مناسب است.

۱.۱. نصب Kivy
برای شروع کار با Kivy، کافی است با دستور زیر آن را نصب کنید:
pip install kivy

۱.۲. ویژگی‌های کلیدی Kivy
- چندسکویی بودن: با یک بار نوشتن کد می‌توانید اپلیکیشن را بر روی پلتفرم‌های مختلف اجرا کنید.
- رابط کاربری انعطاف‌پذیر: Kivy با پشتیبانی از طراحی گرافیکی پیشرفته و ویجت‌های متنوع، برای ساخت اپلیکیشن‌های تعاملی مناسب است.
- مناسب برای صفحات لمسی: Kivy به طور خاص برای ساخت اپلیکیشن‌هایی که با صفحات لمسی کار می‌کنند طراحی شده است.

۱.۳. قابلیت‌های مهم Kivy
- ویجت‌های متنوع: شامل دکمه‌ها، لیست‌ها، اسلایدرها، تب‌ها و ... .
- پشتیبانی از OpenGL ES: برای رندرینگ سه‌بعدی و گرافیک‌های پیچیده.
- قابلیت سفارشی‌سازی کامل: شما می‌توانید ویجت‌های خود را تعریف و سفارشی‌سازی کنید.

۱.۴. ساخت اپلیکیشن موبایل با Kivy
با استفاده از Kivy و ابزارهایی مثل Buildozer، می‌توانید اپلیکیشن خود را به فرمت APK برای اندروید تبدیل کنید. Buildozer فرآیند تبدیل کد پایتون به فایل نصب اندروید را برای توسعه‌دهندگان آسان کرده است.

۱.۵. جمع‌بندی Kivy
Kivy برای توسعه اپلیکیشن‌های موبایل و دسکتاپ که نیاز به رابط کاربری تعاملی و انعطاف‌پذیر دارند، بسیار مناسب است. این کتابخانه برای برنامه‌نویسانی که می‌خواهند برنامه‌هایی با عملکرد چندسکویی بنویسند، یک گزینه عالی است.

۲. ساخت رابط‌های کاربری حرفه‌ای با PyQt 🎛️

PyQt یک کتابخانه معروف برای ساخت رابط‌های کاربری گرافیکی (GUI) پیچیده و پیشرفته است. این کتابخانه رابطی برای استفاده از Qt Framework است که یکی از قدرتمندترین ابزارها برای توسعه رابط‌های گرافیکی دسکتاپی محسوب می‌شود.

۲.۱. نصب PyQt
برای شروع کار با PyQt، با استفاده از دستور زیر آن را نصب کنید:
pip install PyQt5

۲.۲. ویژگی‌های کلیدی PyQt
- طراحی رابط کاربری پیشرفته: PyQt برای ساخت برنامه‌های دسکتاپی حرفه‌ای با المان‌های گرافیکی پیچیده مناسب است.
- ویجت‌های متنوع: PyQt شامل تعداد زیادی ویجت است که به شما امکان می‌دهد رابط‌های گرافیکی پیچیده بسازید.
- قابلیت استفاده از Qt Designer: ابزاری برای طراحی گرافیکی رابط کاربری بدون نیاز به کدنویسی.

۲.۳. قابلیت‌های مهم PyQt
- پشتیبانی از منوها، نوار ابزار و پنجره‌های چندگانه: برای ساخت برنامه‌های حرفه‌ای و کاربرپسند.
- سیستم سیگنال و اسلات: این سیستم امکان ارتباط بین ویجت‌ها را به سادگی فراهم می‌کند.
- پشتیبانی از طراحی با ابزار گرافیکی (Qt Designer): می‌توانید به راحتی با ابزار Qt Designer رابط کاربری طراحی کنید و سپس به پایتون تبدیل کنید.

۲.۴. ساخت اپلیکیشن دسکتاپ با PyQt
یکی از نقاط قوت PyQt این است که به شما امکان می‌دهد برنامه‌های پیچیده با رابط‌های کاربری غنی بسازید. با استفاده از ابزارهایی مانند Qt Designer، می‌توانید بدون نیاز به کدنویسی زیاد، رابط‌های کاربری حرفه‌ای و زیبایی طراحی کنید.

۲.۵. جمع‌بندی PyQt
اگر به دنبال ساخت نرم‌افزارهای دسکتاپ حرفه‌ای هستید، PyQt یکی از بهترین گزینه‌ها است. این کتابخانه قدرت و انعطاف لازم برای ساخت رابط‌های کاربری پیشرفته، دارای منوها، جداول و پنجره‌های چندگانه را فراهم می‌کند.
جمع‌بندی 📋

Kivy و PyQt هر دو ابزارهای قدرتمندی برای ساخت اپلیکیشن‌های گرافیکی هستند. اگر به دنبال ساخت اپلیکیشن‌های چندسکویی و موبایل هستید، Kivy انتخاب مناسبی است. اما اگر قصد ساخت اپلیکیشن‌های دسکتاپی پیچیده با رابط‌های کاربری غنی را دارید، PyQt بهترین گزینه است.

(از این آموزشای جالب اینجا پره)

#پایتون #Kivy #PyQt #برنامه‌نویسی #اپلیکیشن_موبایل #طراحی_رابط_کاربری #دسکتاپ #اپلیکیشن
👍1
📂 باز کردن فایل‌های ZIP رمزگذاری‌شده با جستجوی خودکار رمز در پایتون 🔑

در این آموزش، نحوه پیاده‌سازی کدی را یاد می‌گیرید که به صورت خودکار تمام ترکیب‌های مختلف حروف و اعداد را برای پیدا کردن رمز فایل ZIP امتحان می‌کند. این روش به کمک کتابخانه‌های zipfile و itertools انجام می‌شود.

📜 گام‌های انجام کار:

1️⃣ وارد کردن کتابخانه‌ها:

ابتدا باید کتابخانه‌های لازم را وارد کنیم:


   import zipfile
import itertools
import string

2️⃣ تعریف کاراکترها و حداکثر طول رمز:

کاراکترهای ممکن در رمز را مشخص می‌کنیم. این کاراکترها شامل حروف بزرگ و کوچک، اعداد و برخی کاراکترهای خاص هستند. همچنین طول ماکزیمم رمز را تعیین می‌کنیم.

3️⃣ نوشتن کد جستجوی خودکار:

در این مرحله، از itertools.product برای تولید تمام ترکیب‌های ممکن از کاراکترها استفاده می‌کنیم و سپس هر ترکیب را به عنوان رمز تست می‌کنیم.


   def extract_zip(zip_file_path, max_password_length=5):
zip_file = zipfile.ZipFile(zip_file_path)
# کاراکترهای قابل استفاده در رمز
characters = string.ascii_letters + string.digits + "!@#$%^&*()"

# ایجاد ترکیب‌های مختلف از رمزها با طول‌های مختلف
for length in range(1, max_password_length + 1):
for password_tuple in itertools.product(characters, repeat=length):
password = ''.join(password_tuple).encode('utf-8')
try:
zip_file.extractall(pwd=password)
print(f'رمز پیدا شد: {password.decode()}')
return True
except (RuntimeError, zipfile.BadZipFile):
pass

print('رمز یافت نشد!')
return False

4️⃣ اجرای کد:

حالا برای اجرای کد کافی است مسیر فایل زیپ و حداکثر طول رمز را مشخص کنیم:


   extract_zip('protected.zip', max_password_length=5)

این کد ترکیب‌های مختلف کاراکترها را تا طول پنج امتحان می‌کند.

📌 نکته:
این روش ممکن است برای فایل‌های زیپ با رمزهای پیچیده یا طولانی مدت زمان زیادی ببرد. لطفاً از این کد فقط برای اهداف آموزشی و قانونی استفاده کنید.

اینجا بزن تا بیشتر یاد بگیری
👎1