✔️ ساخت ربات اتوکلیکر هوشمند با پایتون
🔻 ویژگیهای جذاب این ربات
- فعالیت هوشمند بر اساس رنگ پیکسلها
- توقف آسان با کلید F1
- لاگ عملیات برای بررسی عملکرد
- حافظت از اجرای بینظم با تایمر
🔻 کاربردهای عملی
1. بازیها: اتوماسیون کلیک در بازیهای ساده
2. تست نرمافزار: شبیهسازی کلیک کاربر
3. کارهای تکراری: اتوماسیون عملیات روزمره
🛠 ماژولهای موردنیاز
@LearnPythonIcy
🔻 ویژگیهای جذاب این ربات
- فعالیت هوشمند بر اساس رنگ پیکسلها
- توقف آسان با کلید F1
- لاگ عملیات برای بررسی عملکرد
- حافظت از اجرای بینظم با تایمر
🔻 کاربردهای عملی
1. بازیها: اتوماسیون کلیک در بازیهای ساده
2. تست نرمافزار: شبیهسازی کلیک کاربر
3. کارهای تکراری: اتوماسیون عملیات روزمره
🛠 ماژولهای موردنیاز
pip install pyautogui keyboard
@LearnPythonIcy
❤3
Forwarded from روانشناسی | نبوغ سبز
فشار روانی از خود جنگ، آسیبزا تره!
سعی کنید حداقل یکبار هم که شده در طول روز، تخلیه روانی بشید
کافیه به جای امن توی خونه بشینید
چشم ها بسته و برید برای ۵ دقیقه تنفس
چه مدلی نفس بکشیم؟
🌱 ۴ ثانیه دم
🌱 ۷ ثانیه نفس نگه دار
🌱 ۸ ثانیه بازدم
@Green_Genius
سعی کنید حداقل یکبار هم که شده در طول روز، تخلیه روانی بشید
کافیه به جای امن توی خونه بشینید
چشم ها بسته و برید برای ۵ دقیقه تنفس
چه مدلی نفس بکشیم؟
🌱 ۴ ثانیه دم
🌱 ۷ ثانیه نفس نگه دار
🌱 ۸ ثانیه بازدم
@Green_Genius
👍3
دوستان،
در این شرایط خاص، مراقب خودتان باشید.❤️
- اگر انرژی کم دارید، طبیعی است:)
- اگر تمرکز ندارید، تقصیر شما نیست=)
- اگر کارایی سابق را ندارید، خودتان را سرزنش نکنید;)
به یاد داشته باشید:
"این روزها هم گذراست...
و شما تنها نیستید."
#مراقب_همدیگر_باشیم
در این شرایط خاص، مراقب خودتان باشید.❤️
- اگر انرژی کم دارید، طبیعی است:)
- اگر تمرکز ندارید، تقصیر شما نیست=)
- اگر کارایی سابق را ندارید، خودتان را سرزنش نکنید;)
به یاد داشته باشید:
"این روزها هم گذراست...
و شما تنها نیستید."
#مراقب_همدیگر_باشیم
❤3
✔️ ساختار داده درخت به زبان ساده
درخت چیست؟
یک ساختار داده سلسله مراتبی شبیه درخت واقعی است که از:
- گرهها (Nodes): خانههای حاوی داده
- یالها (Edges): خطوط اتصال بین گرهها
چرا درخت مهمه؟
- نمایش دادههای سلسله مراتبی مثل:
- ساختار فایلها در کامپیوتر 📂
- نمودار سازمانی شرکت 👨💼
- رابطه والد-فرزند در دیتابیس 🗄
- پایهی الگوریتمهای پیشرفته
- سرعت بالا در جستجو و مرتبسازی
انواع اصلی درخت
1️⃣ درخت دودویی (Binary Tree)
- هر گره حداکثر ۲ فرزند: چپ و راست
2️⃣ درخت جستجوی دودویی (BST)
- مقدار فرزند چپ < والد < فرزند راست
- جستجو مثل بازی "حدس عدد":
3️⃣ درخت AVL
- نسخهی متعادلشدهی BST
- خودش رو با چرخشها متعادل میکنه ⚖️
مثال کاربردی: سیستم فایل
چه زمانی از درخت استفاده کنیم؟
- وقتی دادهها رابطهی سلسله مراتبی دارن
- نیاز به جستجوی سریع دارید (مثل دیکشنری)
- میخواین دادهها رو به صورت مرتبشده نگه دارید
> "درختها پل بین ساختارهای خطی ساده و پایگاهدادههای پیشرفته هستند!"
#tree | @LearnPythonIcy
درخت چیست؟
یک ساختار داده سلسله مراتبی شبیه درخت واقعی است که از:
- گرهها (Nodes): خانههای حاوی داده
- یالها (Edges): خطوط اتصال بین گرهها
چرا درخت مهمه؟
- نمایش دادههای سلسله مراتبی مثل:
- ساختار فایلها در کامپیوتر 📂
- نمودار سازمانی شرکت 👨💼
- رابطه والد-فرزند در دیتابیس 🗄
- پایهی الگوریتمهای پیشرفته
- سرعت بالا در جستجو و مرتبسازی
انواع اصلی درخت
1️⃣ درخت دودویی (Binary Tree)
- هر گره حداکثر ۲ فرزند: چپ و راست
class Node:
def __init__(self, data):
self.left = None
self.right = None
self.data = data
2️⃣ درخت جستجوی دودویی (BST)
- مقدار فرزند چپ < والد < فرزند راست
- جستجو مثل بازی "حدس عدد":
def search(root, target):
if not root: return False
if root.data == target: return True
if target < root.data:
return search(root.left, target)
return search(root.right, target)
3️⃣ درخت AVL
- نسخهی متعادلشدهی BST
- خودش رو با چرخشها متعادل میکنه ⚖️
مثال کاربردی: سیستم فایل
📁 Documents/
├── 📁 Projects/
│ ├── 📄 report.pdf
│ └── 📁 Code/
├── 📁 Images/
│ └── 🖼 photo1.jpg
└── 📄 notes.txt
چه زمانی از درخت استفاده کنیم؟
- وقتی دادهها رابطهی سلسله مراتبی دارن
- نیاز به جستجوی سریع دارید (مثل دیکشنری)
- میخواین دادهها رو به صورت مرتبشده نگه دارید
> "درختها پل بین ساختارهای خطی ساده و پایگاهدادههای پیشرفته هستند!"
#tree | @LearnPythonIcy
👍1
✔️ ماژول typer (برای ساخت CLI حرفهای)
📌 هدف ماژول typer:
- ساخت ابزارهای Command Line (CLI) به سادگی و با Type Hints.
- جایگزین مدرن و آسان برای
- مناسب برای اتوماسیون، اسکریپتنویسی و برنامههای کاربردی.
هدف مثال:
- نشان میدهد چطور با ۴ خط کد یک CLI تعاملی بسازید!
- آموزش استفاده از آرگومانهای اجباری/اختیاری و Type Hints.
#typer | @LearnPythonIcy
📌 هدف ماژول typer:
- ساخت ابزارهای Command Line (CLI) به سادگی و با Type Hints.
- جایگزین مدرن و آسان برای
argparse و click. - مناسب برای اتوماسیون، اسکریپتنویسی و برنامههای کاربردی.
هدف مثال:
- نشان میدهد چطور با ۴ خط کد یک CLI تعاملی بسازید!
- آموزش استفاده از آرگومانهای اجباری/اختیاری و Type Hints.
#typer | @LearnPythonIcy
👍2
✔️ مثال کاربردی با ماژول
🔹 کاربرد اصلی ماژول
ماژول
فرمت TOML (مخفف *Tom's Obvious Minimal Language*) یک فرمت خوانا برای انسان و ماشین است که مخصوصاً برای فایلهای تنظیمات محبوب است.
🔸 مقایسه با JSON/YAML:
- خوانایی بالاتر نسبت به JSON (مخصوصاً برای دادههای پیچیده).
- سادهتر از YAML (بدان پیچیدگیهای فاصله و تو رفتگی).
- استاندارد جدید پایتون برای تنظیمات پروژهها.
🔹 چرا TOML بهتر از JSON برای تنظیمات؟
- پشتیبانی از کامنت (برخلاف JSON).
- نیاز به کوتیشن کمتر (مثلاً برای کلیدها).
- خوانایی نزدیک به زبان طبیعی.
toml 🔹 کاربرد اصلی ماژول
tomlماژول
toml در پایتون برای کار با فایلهای پیکربندی با فرمت TOML طراحی شده است. فرمت TOML (مخفف *Tom's Obvious Minimal Language*) یک فرمت خوانا برای انسان و ماشین است که مخصوصاً برای فایلهای تنظیمات محبوب است.
🔸 مقایسه با JSON/YAML:
- خوانایی بالاتر نسبت به JSON (مخصوصاً برای دادههای پیچیده).
- سادهتر از YAML (بدان پیچیدگیهای فاصله و تو رفتگی).
- استاندارد جدید پایتون برای تنظیمات پروژهها.
🔹 چرا TOML بهتر از JSON برای تنظیمات؟
- پشتیبانی از کامنت (برخلاف JSON).
- نیاز به کوتیشن کمتر (مثلاً برای کلیدها).
- خوانایی نزدیک به زبان طبیعی.
❤1
✔️ ماژول functools یکی از ماژولهای استاندارد پایتون است که ابزارهایی برای کار با توابع (functions) و callableها فراهم میکند. این ماژول بیشتر برای برنامهنویسی تابعی (functional programming) و کَش کردن، مرتبسازی، و ترکیب توابع استفاده میشود.
---
📦 کاربردهای اصلی functools
در ادامه مهمترین ابزارها و دکوراتورهای این ماژول را توضیح میدهم:
---
1. 🔁 @lru_cache و @cache
برای کَش کردن نتایج توابع:
مناسب برای توابعی با محاسبهی سنگین که بارها با ورودیهای تکراری فراخوانی میشوند.
---
2. 🪝 @wraps
برای حفظ متادیتا (مثل name, doc) هنگام نوشتن دکوراتورهای سفارشی:
---
3. 🧩 partial
برای ساختن نسخهای از یک تابع با برخی آرگومانهای پیشفرض پرشده:
---
4. 🧮 cmp_to_key
برای تبدیل توابع مقایسهای (قدیمی) به کلید قابل استفاده در sorted():
---
5. 🧠 reduce
برای کاهش لیستی از مقادیر به یک مقدار واحد (مثل جمع، ضرب، ...):
> 🔸 در پایتون 3، reduce از ماژول functools آورده میشود (در پایتون 2 در builtin بود).
---
📌 لیست دیگر توابع مفید در functools
تابع یا کلاس توضیح
total_ordering
ساخت مقایسه کامل از فقط چند متد
singledispatch
تعریف تابعی که بر اساس نوع آرگومان رفتار متفاوت دارد
update_wrapper
مثل @wraps برای انتقال متادیتا
cached_property
مثل property ولی با کش کردن نتیجه
---
✅ مثال ترکیبی
#functools | @LearnPythonIcy
---
📦 کاربردهای اصلی functools
در ادامه مهمترین ابزارها و دکوراتورهای این ماژول را توضیح میدهم:
---
1. 🔁 @lru_cache و @cache
برای کَش کردن نتایج توابع:
from functools import lru_cache
@lru_cache(maxsize=128)
def slow_function(x):
print("Running...")
return x * 2
@lru_cache(maxsize=None) = بدون محدودیت → مشابه @cache (در پایتون 3.9+)
مناسب برای توابعی با محاسبهی سنگین که بارها با ورودیهای تکراری فراخوانی میشوند.
---
2. 🪝 @wraps
برای حفظ متادیتا (مثل name, doc) هنگام نوشتن دکوراتورهای سفارشی:
from functools import wraps
def my_decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
print("Before call")
return func(*args, **kwargs)
return wrapper
---
3. 🧩 partial
برای ساختن نسخهای از یک تابع با برخی آرگومانهای پیشفرض پرشده:
from functools import partial
def power(base, exponent):
return base ** exponent
square = partial(power, exponent=2)
print(square(4)) # 16
---
4. 🧮 cmp_to_key
برای تبدیل توابع مقایسهای (قدیمی) به کلید قابل استفاده در sorted():
from functools import cmp_to_key
def compare(a, b):
return a - b
sorted_list = sorted([5, 2, 9], key=cmp_to_key(compare))
---
5. 🧠 reduce
برای کاهش لیستی از مقادیر به یک مقدار واحد (مثل جمع، ضرب، ...):
from functools import reduce
result = reduce(lambda x, y: x + y, [1, 2, 3, 4])
print(result) # 10
> 🔸 در پایتون 3، reduce از ماژول functools آورده میشود (در پایتون 2 در builtin بود).
---
📌 لیست دیگر توابع مفید در functools
تابع یا کلاس توضیح
total_ordering
ساخت مقایسه کامل از فقط چند متد
singledispatch
تعریف تابعی که بر اساس نوع آرگومان رفتار متفاوت دارد
update_wrapper
مثل @wraps برای انتقال متادیتا
cached_property
مثل property ولی با کش کردن نتیجه
---
✅ مثال ترکیبی
from functools import lru_cache, partial
@lru_cache(maxsize=None)
def factorial(n):
return 1 if n == 0 else n * factorial(n - 1)
triple = partial(pow, exponent=3)
# خطا! چون pow آرگومان keyword نمیپذیرد
#functools | @LearnPythonIcy
❤3
✔️ طبقهبندي سرطان پستان با PCA و رگرسیون لجستیک
این کد در دو مرحله، طبقهبندی روی دادههای سرطان پستان را انجام میدهد:
⤵️ مرحله اول
1. دادههای سرطان پستان از sklearn بارگیری میشود.
2. دادهها به مجموعههای آموزش و آزمون تقسیم میشوند.
3. یک مدل رگرسیون لجستیک آموزش داده میشود.
4. دقت مدل روی دادههای آموزش و آزمون محاسبه و چاپ میشود.
⤵️ مرحله دوم
1. همان دادهها با StandardScaler نرمالسازی میشوند.
2. با استفاده از PCA بعد دادهها به 2 مولفه اصلی کاهش مییابد.
3. مجدداً دادهها تقسیم و مدل رگرسیون لجستیک آموزش داده میشود.
4. دقت مدل جدید محاسبه و چاپ میشود.
هدف مقایسه عملکرد مدل قبل و بعد از کاهش ابعاد با PCA است. این کد معمولاً برای نمایش تأثیر پیشپردازش داده و کاهش ابعاد بر عملکرد مدلهای یادگیری ماشین استفاده میشود.
👇کد در کامنت
#pandas | #sklearn | #load_breast_cancer | @LearnPythonIcy
این کد در دو مرحله، طبقهبندی روی دادههای سرطان پستان را انجام میدهد:
⤵️ مرحله اول
1. دادههای سرطان پستان از sklearn بارگیری میشود.
2. دادهها به مجموعههای آموزش و آزمون تقسیم میشوند.
3. یک مدل رگرسیون لجستیک آموزش داده میشود.
4. دقت مدل روی دادههای آموزش و آزمون محاسبه و چاپ میشود.
⤵️ مرحله دوم
1. همان دادهها با StandardScaler نرمالسازی میشوند.
2. با استفاده از PCA بعد دادهها به 2 مولفه اصلی کاهش مییابد.
3. مجدداً دادهها تقسیم و مدل رگرسیون لجستیک آموزش داده میشود.
4. دقت مدل جدید محاسبه و چاپ میشود.
هدف مقایسه عملکرد مدل قبل و بعد از کاهش ابعاد با PCA است. این کد معمولاً برای نمایش تأثیر پیشپردازش داده و کاهش ابعاد بر عملکرد مدلهای یادگیری ماشین استفاده میشود.
👇کد در کامنت
#pandas | #sklearn | #load_breast_cancer | @LearnPythonIcy
✔️ پروژههای پایتون از مبتدی تا پیشرفته!
اگر میخواهید پایتون را به صورت عملی یاد بگیرید، بهترین راه ساختن پروژههای واقعی است! در این پست ایدههایی از ساده تا حرفهای برای شما آماده کردهام:
🔹 سطح مبتدی (آشنایی با مبانی پایتون)
1️⃣ ماشین حساب ساده - عملیات پایه ریاضی
2️⃣ تبدیل واحد (دما، وزن، طول) - مثل سانتیگراد به فارنهایت
3️⃣ بازی حدس عدد - کامپیوتر یک عدد تصادفی انتخاب میکند و کاربر باید حدس بزند
4️⃣ لیست کارها (To-Do List) - افزودن، حذف و نمایش تسکها
🔸 سطح متوسط (کار با فایلها، کتابخانهها و دادهها)
5️⃣ مدیریت مخاطبان (دفترچه تلفن) - ذخیره و بازیابی اطلاعات از فایل
6️⃣ وباسکرپر ساده - استخراج داده از یک صفحه وب با
7️⃣ پیشبینی آب و هوا - استفاده از APIهای رایگان مثل OpenWeatherMap
8️⃣ ربات تلگرام ساده - پاسخگویی خودکار با کتابخانه
🔺 سطح پیشرفته (پروژههای واقعی و پیچیده)
9️⃣ سیستم رزرو بلیط سینما - با پایگاه داده و رابط کاربری (Tkinter یا Django)
🔟 پلتفرم وب بلاگ - با جنگو یا Flask (احراز کاربر، نظرات، پستها)
1️⃣1️⃣ تشخیص چهره یا اشیا - با OpenCV و یادگیری ماشین
2️⃣1️⃣ تریدر خودکار ارز دیجیتال - تحلیل داده و APIنویسی (مثل Binance API)
💡 نکته: هرچه جلوتر بروید، چالشها جذابتر میشوند!
📌 شما چه پروژهای ساختهاید؟ زیر همین پست ایدههای خود را با ما به اشتراک بگذارید! 👇
#یادگیری_عملی
#project_time | @Learnpythonicy
اگر میخواهید پایتون را به صورت عملی یاد بگیرید، بهترین راه ساختن پروژههای واقعی است! در این پست ایدههایی از ساده تا حرفهای برای شما آماده کردهام:
🔹 سطح مبتدی (آشنایی با مبانی پایتون)
1️⃣ ماشین حساب ساده - عملیات پایه ریاضی
2️⃣ تبدیل واحد (دما، وزن، طول) - مثل سانتیگراد به فارنهایت
3️⃣ بازی حدس عدد - کامپیوتر یک عدد تصادفی انتخاب میکند و کاربر باید حدس بزند
4️⃣ لیست کارها (To-Do List) - افزودن، حذف و نمایش تسکها
🔸 سطح متوسط (کار با فایلها، کتابخانهها و دادهها)
5️⃣ مدیریت مخاطبان (دفترچه تلفن) - ذخیره و بازیابی اطلاعات از فایل
6️⃣ وباسکرپر ساده - استخراج داده از یک صفحه وب با
requests و BeautifulSoup 7️⃣ پیشبینی آب و هوا - استفاده از APIهای رایگان مثل OpenWeatherMap
8️⃣ ربات تلگرام ساده - پاسخگویی خودکار با کتابخانه
python-telegram-bot 🔺 سطح پیشرفته (پروژههای واقعی و پیچیده)
9️⃣ سیستم رزرو بلیط سینما - با پایگاه داده و رابط کاربری (Tkinter یا Django)
🔟 پلتفرم وب بلاگ - با جنگو یا Flask (احراز کاربر، نظرات، پستها)
1️⃣1️⃣ تشخیص چهره یا اشیا - با OpenCV و یادگیری ماشین
2️⃣1️⃣ تریدر خودکار ارز دیجیتال - تحلیل داده و APIنویسی (مثل Binance API)
💡 نکته: هرچه جلوتر بروید، چالشها جذابتر میشوند!
📌 شما چه پروژهای ساختهاید؟ زیر همین پست ایدههای خود را با ما به اشتراک بگذارید! 👇
#یادگیری_عملی
#project_time | @Learnpythonicy
👍1
✔️ ۵ ترفند جادویی در پردازش تصویر با پایتون (OpenCV + PIL)
پردازش تصویر یکی از جذابترین بخشهای برنامهنویسی است. در اینجا تکنیکهای کاربردی را با کتابخانههای محبوب پایتون بررسی میکنیم:
1️⃣چرخش تصویر با حاشیههای هوشمند
بهینهسازی:
- اضافه کردن
- ذخیره خودکار خروجی با
2️⃣ فیلتر ترکیبی (Edge Detection + Blur)
3️⃣ تغییر رنگهای خاص با HSV
نکته:
- برای تشخیص بهتر قرمز، محدوده
4️⃣ تصحیح خودکار نور
5️⃣ تشخیص چهره + تار کردن پسزمینه
📚 کتابخانههای پیشنهادی
- OpenCV: برای پردازش حرفهای تصویر.
- Pillow: برای عملیات سادهتر.
- scikit-image: برای الگوریتمهای پیشرفته (مثل
- matplotlib: برای نمایش گرافیکی نتایج.
#PythonMagic | #بینایی_ماشین |@LearnPythonicy
پردازش تصویر یکی از جذابترین بخشهای برنامهنویسی است. در اینجا تکنیکهای کاربردی را با کتابخانههای محبوب پایتون بررسی میکنیم:
1️⃣چرخش تصویر با حاشیههای هوشمند
import cv2
import numpy as np
img = cv2.imread('image.jpg')
assert img is not None, "تصویر یافت نشد!" # بررسی وجود فایل
rows, cols = img.shape[:2]
M = cv2.getRotationMatrix2D((cols/2, rows/2), 45, 1)
rotated = cv2.warpAffine(img, M, (cols, rows), borderMode=cv2.BORDER_REFLECT)
cv2.imwrite('rotated.jpg', rotated)
بهینهسازی:
- اضافه کردن
assert برای بررسی وجود فایل. - ذخیره خودکار خروجی با
imwrite.2️⃣ فیلتر ترکیبی (Edge Detection + Blur)
from PIL import Image, ImageFilter
image = Image.open('image.jpg')
edges = image.filter(ImageFilter.FIND_EDGES()) # تابع باید با حروف کوچک باشد: FIND_EDGES → FIND_EDGES
blurred_edges = edges.filter(ImageFilter.GaussianBlur(radius=2))
blurred_edges.save('edges_blurred.jpg')
3️⃣ تغییر رنگهای خاص با HSV
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
lower_red = np.array([0, 100, 100])
upper_red = np.array([10, 255, 255])
mask = cv2.inRange(hsv, lower_red, upper_red)
img[mask > 0] = [0, 255, 0] # تغییر رنگ قرمز به سبز
cv2.imwrite('color_changed.jpg', img)
نکته:
- برای تشخیص بهتر قرمز، محدوده
[170, 100, 100] تا [180, 255, 255] را نیز اضافه کنید.4️⃣ تصحیح خودکار نور
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
equalized = cv2.equalizeHist(gray)
cv2.imwrite('equalized_gray.jpg', equalized)
# نسخه رنگی:
yuv = cv2.cvtColor(img, cv2.COLOR_BGR2YUV)
yuv[:,:,0] = cv2.equalizeHist(yuv[:,:,0])
equalized_color = cv2.cvtColor(yuv, cv2.COLOR_YUV2BGR)
cv2.imwrite('equalized_color.jpg', equalized_color)
5️⃣ تشخیص چهره + تار کردن پسزمینه
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
mask = np.zeros_like(img)
for (x,y,w,h) in faces:
mask[y:y+h, x:x+w] = img[y:y+h, x:x+w] # حفظ چهره
blurred_bg = cv2.GaussianBlur(img, (25,25), 0)
result = np.where(mask==0, blurred_bg, mask) # ترکیب با ماسک
cv2.imwrite('blurred_bg.jpg', result)
📚 کتابخانههای پیشنهادی
- OpenCV: برای پردازش حرفهای تصویر.
- Pillow: برای عملیات سادهتر.
- scikit-image: برای الگوریتمهای پیشرفته (مثل
exposure.equalize_adapthist). - matplotlib: برای نمایش گرافیکی نتایج.
#PythonMagic | #بینایی_ماشین |@LearnPythonicy
✔️ پیدا کردن حروف منحصر به فرد در یک رشته
برای پیدا کردن حروف منحصر به فرد (حذف کاراکترهای تکراری از متن) در یک رشته، معمولاً از حلقهها و ساختارهای شرطی استفاده میکنیم:
اما پایتون یک روش حرفهای و بهینهتر ارائه میدهد:
👀 چرا این روش کار میکند؟
- تابع
- با تبدیل نتیجه به لیست، خروجی مورد نظر ما را میدهد.
نکته:
اگر ترتیب حروف مهم است، میتوانید از
این روش:
1. سریعتر و خوانا تر است
2. برای رشتههای طولانی کارایی بهتری دارد
3. کد را حرفهایتر نشان میدهد
#PythonTricks | #بدانیم | @LearnPythonIcy
برای پیدا کردن حروف منحصر به فرد (حذف کاراکترهای تکراری از متن) در یک رشته، معمولاً از حلقهها و ساختارهای شرطی استفاده میکنیم:
unique_chars = []
for char in my_string:
if char not in unique_chars:
unique_chars.append(char)
اما پایتون یک روش حرفهای و بهینهتر ارائه میدهد:
unique_chars = list(set(my_string))
👀 چرا این روش کار میکند؟
- تابع
set() به طور خودکار تمام عناصر تکراری را حذف میکند. - با تبدیل نتیجه به لیست، خروجی مورد نظر ما را میدهد.
نکته:
اگر ترتیب حروف مهم است، میتوانید از
dict استفاده کنید:unique_ordered = list(dict.fromkeys(my_string))
این روش:
1. سریعتر و خوانا تر است
2. برای رشتههای طولانی کارایی بهتری دارد
3. کد را حرفهایتر نشان میدهد
#PythonTricks | #بدانیم | @LearnPythonIcy
✔️ محاسبه سریع فیبوناچی با روش ماتریسی!
برای محاسبه دنباله فیبوناچی معمولاً از روش بازگشتی استفاده میکنیم:
اما یک روش حرفهای با پیچیدگی O(log n) وجود دارد:
#پایتون | #الگوریتم | #بهینه_سازی | @learnpythonicy
برای محاسبه دنباله فیبوناچی معمولاً از روش بازگشتی استفاده میکنیم:
def fib(n):
if n <= 1:
return n
return fib(n-1) + fib(n-2)
اما یک روش حرفهای با پیچیدگی O(log n) وجود دارد:
def fib(n):
def mat_pow(mat, power):
result = [[1,0],[0,1]]
while power > 0:
if power % 2 == 1:
result = mat_mult(result, mat)
mat = mat_mult(mat, mat)
power //= 2
return result
def mat_mult(a, b):
return [[a[0][0]*b[0][0] + a[0][1]*b[1][0],
a[0][0]*b[0][1] + a[0][1]*b[1][1]],
[a[1][0]*b[0][0] + a[1][1]*b[1][0],
a[1][0]*b[0][1] + a[1][1]*b[1][1]]]
if n == 0:
return 0
mat = [[1,1],[1,0]]
result = mat_pow(mat, n-1)
return result[0][0]
#پایتون | #الگوریتم | #بهینه_سازی | @learnpythonicy
آموزش پایتون
✔️ محاسبه سریع فیبوناچی با روش ماتریسی! برای محاسبه دنباله فیبوناچی معمولاً از روش بازگشتی استفاده میکنیم: def fib(n): if n <= 1: return n return fib(n-1) + fib(n-2) اما یک روش حرفهای با پیچیدگی O(log n) وجود دارد: def fib(n): …
چرا این روش انقلابی است؟
1. سرعت فوقالعاده: محاسبه fib(1000) در 0.0001 ثانیه
2. حافظه بهینه: بدون استفاده از پشته بازگشتی
3. پشتیبانی از اعداد بسیار بزرگ
نحوه کار:
- از توان ماتریس ۲×۲ استفاده میکند
- با تکنیک توان رسانی سریع محاسبه میشود
مقایسه عملکرد:
- fib(22) با روش بازگشتی: 0.05994 ثانیه
- fib(22) با این روش: 0.00000 ثانیه
1. سرعت فوقالعاده: محاسبه fib(1000) در 0.0001 ثانیه
2. حافظه بهینه: بدون استفاده از پشته بازگشتی
3. پشتیبانی از اعداد بسیار بزرگ
نحوه کار:
- از توان ماتریس ۲×۲ استفاده میکند
- با تکنیک توان رسانی سریع محاسبه میشود
مقایسه عملکرد:
- fib(22) با روش بازگشتی: 0.05994 ثانیه
- fib(22) با این روش: 0.00000 ثانیه
Packtpub_Mastering_OpenCV_with_Practical.pdf
6.3 MB
📚 «Mastering OpenCV with Practical Computer Vision Projects»
📚 کتاب "تسلط بر OpenCV با پروژههای عملی بینایی کامپیوتر"
✅ آیا به دنبال یادگیری عمیق و کاربردی OpenCV و پیادهسازی پروژههای واقعی بینایی کامپیوتر هستید؟
✅ این کتاب یک راهنمای جامع و پروژهمحور برای توسعهدهندگانی است که میخواهند از کتابخانه
✅ چرا این کتاب را بخوانیم؟
- مناسب برای توسعهدهندگان متوسط و پیشرفته
- ارائه مثالهای عملی و پروژههای کاربردی
- مرجع عالی برای علاقهمندان به بینایی ماشین و پردازش تصویر
#معرفی_کتاب | #بوک_تایم | آموزش پایتون | #بینایی_کامپیوتر | #opencv
📚 کتاب "تسلط بر OpenCV با پروژههای عملی بینایی کامپیوتر"
✅ آیا به دنبال یادگیری عمیق و کاربردی OpenCV و پیادهسازی پروژههای واقعی بینایی کامپیوتر هستید؟
✅ این کتاب یک راهنمای جامع و پروژهمحور برای توسعهدهندگانی است که میخواهند از کتابخانه
OpenCV برای حل مسائل پیچیده بینایی ماشین استفاده کنند. ✅ خلاصهای از کتاب
این کتاب با رویکردی عملی و مبتنی بر پروژه، تکنیکهای پیشرفته پردازش تصویر و بینایی کامپیوتر را آموزش میدهد. از مباحث پایهای OpenCV تا پیادهسازی پروژههای واقعی مانند تشخیص چهره، ردیابی اشیا و پردازش ویدئو، همه در این کتاب پوشش داده شدهاند.
✅ چرا این کتاب را بخوانیم؟
- مناسب برای توسعهدهندگان متوسط و پیشرفته
- ارائه مثالهای عملی و پروژههای کاربردی
- مرجع عالی برای علاقهمندان به بینایی ماشین و پردازش تصویر
#معرفی_کتاب | #بوک_تایم | آموزش پایتون | #بینایی_کامپیوتر | #opencv
❤1
آموزش پایتون
کار دستور split چیست؟
✔️ دستور split() در پایتون
دستور split() یک متد برای رشتهها (strings) در پایتون است که یک رشته را به چند بخش تقسیم میکند و نتیجه را به صورت لیست برمیگرداند.
کاربرد اصلی:
- جداکننده (sep): مشخص میکند بر اساس چه کاراکتری تقسیم انجام شود (پیشفرض: فاصله)
- و maxsplit : حداکثر تعداد تقسیمها را مشخص میکند
مثالهای ساده
1. تقسیم بر اساس فاصله (پیشفرض):
2. تقسیم بر اساس کاراکتر خاص:
3. محدود کردن تعداد تقسیمها:
4. تقسیم خطوط یک متن:
این متد بسیار پرکاربرد است، مخصوصاً هنگام پردازش فایلهای متنی یا دادههای ساختاریافته مانند CSV.
#split | @LearnPythonIcy
دستور split() یک متد برای رشتهها (strings) در پایتون است که یک رشته را به چند بخش تقسیم میکند و نتیجه را به صورت لیست برمیگرداند.
کاربرد اصلی:
رشته.split(جداکننده, maxsplit)
- جداکننده (sep): مشخص میکند بر اساس چه کاراکتری تقسیم انجام شود (پیشفرض: فاصله)
- و maxsplit : حداکثر تعداد تقسیمها را مشخص میکند
مثالهای ساده
1. تقسیم بر اساس فاصله (پیشفرض):
text = "Hello World Python"
result = text.split()
print(result) # خروجی: ['Hello', 'World', 'Python']
2. تقسیم بر اساس کاراکتر خاص:
data = "apple,banana,orange"
result = data.split(',')
print(result) # خروجی: ['apple', 'banana', 'orange']
3. محدود کردن تعداد تقسیمها:
text = "one two three four"
result = text.split(' ', 2)
print(result) # خروجی: ['one', 'two', 'three four']
4. تقسیم خطوط یک متن:
poem = "Line1\nLine2\nLine3"
lines = poem.split('\n')
print(lines) # خروجی: ['Line1', 'Line2', 'Line3']
این متد بسیار پرکاربرد است، مخصوصاً هنگام پردازش فایلهای متنی یا دادههای ساختاریافته مانند CSV.
#split | @LearnPythonIcy
❤1