eitaa logo
آموزش پایتون
63 دنبال‌کننده
244 عکس
106 ویدیو
52 فایل
ارتباط: https://eitaa.com/joinchat/956171922Cb501d5a32f لینک همین کانال: @LearnPythonIcy لینک کانال تلگرام: https://t.me/learnpythonicy
مشاهده در ایتا
دانلود
✔️ 10 Python Async & Concurrency Tricks You Should Know! ⚡🐍 1️⃣ اجرای تابع async import asyncio async def main(): print("Hello Async") asyncio.run(main()) 2️⃣ اجرای همزمان چند Task async def task(n): await asyncio.sleep(1) return n results = await asyncio.gather(task(1), task(2)) 3️⃣ ایجاد Task در پس‌زمینه task = asyncio.create_task(task(3)) 4️⃣ محدود کردن همزمانی با Semaphore sem = asyncio.Semaphore(3) async with sem: await some_io() 5️⃣ Timeout برای جلوگیری از Hang await asyncio.wait_for(task(1), timeout=2) 6️⃣ اجرای کد Blocking داخل Async loop = asyncio.get_running_loop() result = await loop.run_in_executor(None, blocking_func) 7️⃣ استفاده از ThreadPoolExecutor from concurrent.futures import ThreadPoolExecutor 8️⃣ استفاده از ProcessPool برای CPU-Bound from concurrent.futures import ProcessPoolExecutor 9️⃣ مدیریت Race Condition با Lock lock = asyncio.Lock() async with lock: shared_resource += 1 🔟 Async HTTP Requests با aiohttp import aiohttp async with aiohttp.ClientSession() as session: async with session.get("https://api.example.com") as resp: data = await resp.json() > ⚠️ نکته: Async برای I/O-Bound فوق‌العاده است، اما برای CPU-Bound از multiprocessing استفاده کن. 👇 تو پروژه‌هات بیشتر با I/O-Bound سروکار داری یا CPU-Bound؟
سالتون پُرپول، پُرموفقیت و شادی باشه 🦦❤️
🚀 10 کاربرد شگفت‌انگیز ماژول
datetime
در پایتون که باید بدانید! 🕰️ در دنیای برنامه‌نویسی، کار با تاریخ و زمان یکی از رایج‌ترین نیازهاست. ماژول
datetime
در پایتون ابزارهای قدرتمندی برای این منظور فراهم می‌کند. در اینجا 10 نکته کلیدی را با هم مرور می‌کنیم: 1️⃣ دریافت تاریخ و زمان فعلی: python from datetime import datetime now = datetime.now() print(now) 2️⃣ ساخت تاریخ و زمان دلخواه: python from datetime import datetime dt = datetime(2024, 3, 15, 10, 30, 0) # سال، ماه، روز، ساعت، دقیقه، ثانیه print(dt) 3️⃣ استخراج اجزای تاریخ/زمان: python year = now.year month = now.month day = now.day hour = now.hour minute = now.minute second = now.second print(f"{year}-{month}-{day} {hour}:{minute}:{second}") 4️⃣ فرمت‌بندی تاریخ و زمان (strftime): python formatted_date = now.strftime("%Y-%m-%d %H:%M:%S") print(formatted_date) # %A: نام کامل روز هفته، %B: نام کامل ماه 5️⃣ تبدیل رشته به تاریخ و زمان (strptime): python date_string = "2023-12-25 14:00:00" dt_object = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S") print(dt_object) 6️⃣ محاسبه اختلاف زمانی (timedelta): python from datetime import timedelta one_day = timedelta(days=1) yesterday = now - one_day print(yesterday) 7️⃣ افزودن یا کم کردن بازه زمانی: python future_date = now + timedelta(weeks=2, hours=3) print(future_date) 8️⃣ دریافت روز هفته یا روز سال: python weekday = now.weekday() # دوشنبه 0 است day_of_year = now.timetuple().tm_yday print(f"Weekday (0=Mon): {weekday}, Day of year: {day_of_year}") 9️⃣ مقایسه تاریخ‌ها: python date1 = datetime(2024, 1, 1) date2 = datetime(2024, 2, 1) if date1 < date2: print("Date1 is earlier than Date2") 🔟 تبدیل منطقه زمانی (نیازمند نصب کتابخانه
pytz
): python # pip install pytz # from datetime import datetime # import pytz # # utc_now = datetime.now(pytz.utc) # local_tz = pytz.timezone("Asia/Tehran") # tehran_now = utc_now.astimezone(local_tz) # print(f"Tehran time: {tehran_now}") > ⚠️ به یاد داشته باشید که کار با تاریخ و زمان ممکن است به دلیل تفاوت مناطق زمانی و قوانین وقت تابستانی (Daylight Saving Time) کمی پیچیده شود. استفاده صحیح از کتابخانه‌هایی مانند
pytz
این مشکلات را حل می‌کند! | | @LearnPythonicy
«آموزش پایتون » داخل بله یه چنل زدم، محیط بهتر و پرتعامل تری میتونیم اونجا داشته باشیم. 😉 🆔 شناسه: https://ble.ir/learnpythonicy
✔️ ۷ ترفند کاربردی برای کار با دیکشنری‌ها در پایتون! اگر با داده‌های کلیدی–مقداری کار می‌کنید، این تکنیک‌ها سرعت و کیفیت کدنویسی شما را بالا می‌برند: --- 1️⃣ ایجاد دیکشنری python user = {'name': 'Sara', 'age': 23, 'city': 'Tehran'} print(user) --- 2️⃣ افزودن/ویرایش مقدار python user['age'] = 24 user['job'] = 'Developer' print(user) --- 3️⃣ دریافت مقدار با get (بدون خطا) python print(user.get('city')) print(user.get('phone', 'Not Found')) --- 4️⃣ حذف مقدار با pop python user.pop('city') print(user) --- 5️⃣ مرور کلیدها، مقادیر و جفت‌ها python for key, value in user.items(): print(key, value) --- 6️⃣ ادغام دو دیکشنری python a = {'x': 1, 'y': 2} b = {'y': 20, 'z': 3} merged = a | b print(merged) --- 7️⃣ ساخت دیکشنری با Dictionary Comprehension python squares = {x: x*x for x in range(5)} print(squares) --- 🗝 ترفند ویژه: مرتب‌سازی دیکشنری بر اساس مقدار python data = {'a': 3, 'b': 1, 'c': 2} sorted_data = dict(sorted(data.items(), key=lambda item: item[1])) print(sorted_data) نکات طلایی: * برای جلوگیری از خطا، همیشه از
get
در دسترسی‌های حساس استفاده کنید * از عملگر
|
برای ادغام دیکشنری‌ها بهره ببرید (پایتون 3.9+) * Dictionary comprehension بهترین روش برای تولید سریع ساختار داده‌های پیچیده است | | | @learnpythonicy
🔴 چالش ۳۰ روزه Python for AI اگر قصد ورود به دنیای هوش مصنوعی، یادگیری ماشین و Data Science را دارید، این چالش برای شماست. در طول ۳۰ روز آینده با حل تمرین‌های روزانه: ✅ مهارت حل مسئله با پایتون را تقویت می‌کنید ✅ با ابزارهای Data Science آشنا می‌شوید ✅ مدل‌های Machine Learning خود را می‌سازید ✅ چند پروژه مناسب GitHub و رزومه خواهید داشت مسیر چالش: 📍 هفته اول تفکر برنامه‌نویسی و حل مسئله با Python 📍 هفته دوم پروژه‌های کاربردی و تحلیل داده 📍 هفته سوم ورود به Data Science با NumPy ،Pandas و Visualization 📍 هفته چهارم ورود عملی به Machine Learning و AI 🏆 پروژه‌های پایانی: • Student Analytics System • Sales Data Analyzer • Titanic Data Analysis • House Price Prediction 🎯 بسته به میزان مشارکت، فعالیت و همراهی اعضا، سطح پروژه‌ها می‌تواند ارتقا پیدا کند و پروژه‌های پیشرفته‌تر و نزدیک‌تر به پروژه‌های واقعی AI به چالش اضافه شوند. 🎯 خروجی نهایی: • تسلط بیشتر بر Python • آشنایی عملی با Data Science • ورود به Machine Learning • چند پروژه قابل انتشار در GitHub ⏰ هر روز ساعت ۲۰ چالش جدید منتشر می‌شود. شما تا ساعت ۱۹:۵۹ روز بعد فرصت دارید پاسخ خود را ارسال کنید. 💡 در صورت نیاز Hint ارائه خواهد شد. 💡 پاسخ کامل روز بعد همراه با چالش جدید منتشر می‌شود. 🔥 غیبت = از دست دادن زنجیره یادگیری
📢 دوستان عزیز مطالب و پست‌ها در کانال تلگرام منظم‌تر دنبال می‌شوند: ✅ دسترسی به کامنت‌ها و بحث روی تمرین‌ها ✅ ارسال راحت‌تر تکالیف ✅ استفاده از بات برای مدیریت چالش‌ها ✅ دسترسی بهتر به فایل‌ها و سورس‌کدها ✅ آرشیو مرتب‌تر مطالب آموزشی اگر قصد دارید چالش‌ها را جدی دنبال کنید، حتماً در کانال تلگرام هم عضو شوید تا چیزی را از دست ندهید. 🚀🔥 (البته اگر اینترنت یاری بده😁) 🔗 لینک کانال تلگرام: @learnpythonicy https://t.me/learnpythonicy
📢 روز یکم از چالش ۳۰ روزه Python for AI 🎯 موضوع: Variables + Input + Basic Calculations ⭐️ سطح: مبتدی ⏳ زمان تخمینی: 10 تا 20 دقیقه 📝 صورت مسئله: فرض کنید می‌خواهیم اولین بخش یک Student Analytics System را طراحی کنیم. دیتای زیر را در برنامه خود قرار دهید:
students = {
    "Ali": {"credits": 70, "gpa": 17.8},
    "Sara": {"credits": 95, "gpa": 18.5},
    "Reza": {"credits": 40, "gpa": 15.2},
    "Nima": {"credits": 120, "gpa": 18.1},
    "Parsa": {"credits": 55, "gpa": 16.4},
    "Arman": {"credits": 80, "gpa": 17.1},
    "Mina": {"credits": 140, "gpa": 19.0},
    "Ava": {"credits": 35, "gpa": 16.8},
    "Yasmin": {"credits": 110, "gpa": 18.7},
    "Amir": {"credits": 65, "gpa": 15.9}
}
برنامه باید: 1️⃣ نام دانشجو را از کاربر دریافت کند. 2️⃣ اطلاعات دانشجو را نمایش دهد: - Name - Credits Passed - GPA - Remaining Credits - Progress Percentage *فرض کنید برای فارغ‌التحصیلی به 140 واحد نیاز است. ( اگر دانشجو 140 واحد یا بیشتر گذرانده باشد: Status: Graduated در غیر این صورت: Status: In Progress ) 📌 نمونه خروجی: Enter student name: Ali Name: Ali Credits Passed: 70 GPA: 17.8 Remaining Credits: 70 Progress: 50% 📋 قوانین: ✅ خروجی‌ها و نام متغیرها به زبان انگلیسی باشند. ❌ استفاده از ChatGPT فقط برای گرفتن Hint مجاز است، نه دریافت کد کامل 🫪 💡 اگر مبتدی هستی نگران نباش. هدف این چالش یادگیری و پیشرفت روزانه است، نه کامل بودن. ❓ اگر به راهنمایی نیاز داشتی: https://eitaa.com/joinchat/956171922Cb501d5a32fمهلت ارسال پاسخ فردا ساعت 20:00 فردا علاوه بر انتشار پاسخ رسمی، چالش Day 2 را هم میزارم. 🧡🔥 تغییرات بزرگ یک شبه اتفاق نمی‌افتند.
ببینم چیکار میکنید👆👆👆
✅ پاسخ چالش Day 1 یکی از راه‌حل‌های ممکن:
students = {
    "Ali": {"credits": 70, "gpa": 17.8},
    "Sara": {"credits": 95, "gpa": 18.5},
    "Reza": {"credits": 40, "gpa": 15.2},
    "Nima": {"credits": 120, "gpa": 18.1},
    "Parsa": {"credits": 55, "gpa": 16.4},
    "Arman": {"credits": 80, "gpa": 17.1},
    "Mina": {"credits": 140, "gpa": 19.0},
    "Ava": {"credits": 35, "gpa": 16.8},
    "Yasmin": {"credits": 110, "gpa": 18.7},
    "Amir": {"credits": 65, "gpa": 15.9}
}

student_name = input("Enter student name: ")

credits = students[student_name]["credits"]
gpa = students[student_name]["gpa"]

remaining_credits = 140 - credits
progress_percentage = (credits / 140) * 100

if credits >= 140:
    status = "Graduated"
else:
    status = "In Progress"

print("\nStudent Information")
print("-------------------")
print("Name:", student_name)
print("Credits Passed:", credits)
print("GPA:", gpa)
print("Remaining Credits:", remaining_credits)
print(f"Progress: {progress_percentage:.2f}%")
print("Status:", status)
📚 مفاهیمی که در این چالش تمرین کردیم: ✅ Variables ✅ User Input ✅ Dictionary ✅ Nested Dictionary Access ✅ Basic Calculations ✅ Conditional Statements (if/else) ✅ Formatted Output 💡 نکته: اگر نام دانشجویی وارد شود که در دیتاست وجود ندارد، برنامه خطا می‌دهد. در چالش‌های آینده یاد می‌گیریم چطور این خطاها را مدیریت کنیم. 🔥 اگر راه‌حل متفاوتی نوشتید، در کامنت‌ها ارسال کنید. گاهی چندین راه‌حل مختلف برای یک مسئله وجود داره و دیدن روش‌های دیگه می‌تونه آموزنده باشه. 🔜 آماده چالش Day 2 باشید...
🔥 چالش ۳۰ روزه Python for AI 🎯 موضوع: Conditional Statements (if / elif / else) ⭐ سطح: مبتدی ⏳ زمان تخمینی: 10 تا 25 دقیقه 📝 صورت مسئله: در بسیاری از سیستم‌های AI و Data Analytics، قبل از تحلیل داده‌ها باید آن‌ها را دسته‌بندی کنیم. فرض کنید می‌خواهیم دانشجویان را بر اساس معدل طبقه‌بندی کنیم. برنامه‌ای بنویسید که: 1️⃣ نام دانشجو را از کاربر دریافت کند. 2️⃣ اطلاعات دانشجو را از دیتاست زیر پیدا کند. 3️⃣ علاوه بر نمایش اطلاعات، وضعیت تحصیلی او را نیز تعیین کند. students = { "Ali": {"credits": 70, "gpa": 17.8}, "Sara": {"credits": 95, "gpa": 18.5}, "Reza": {"credits": 40, "gpa": 15.2}, "Nima": {"credits": 120, "gpa": 18.1}, "Parsa": {"credits": 55, "gpa": 16.4}, "Arman": {"credits": 80, "gpa": 17.1}, "Mina": {"credits": 140, "gpa": 19.0}, "Ava": {"credits": 35, "gpa": 16.8}, "Yasmin": {"credits": 110, "gpa": 18.7}, "Amir": {"credits": 65, "gpa": 15.9} } 📌 Academic Level اگر GPA برابر یا بیشتر از 18 بود: Excellent اگر GPA بین 16 و 18 بود: Good اگر GPA بین 14 و 16 بود: Average اگر GPA کمتر از 14 بود: Needs Improvement 📌 نمونه خروجی: Enter student name: Sara Name: Sara GPA: 18.5 Academic Level: Excellent 🎯 Bonus Challenge علاوه بر Academic Level مشخص کنید آیا به دانشجو اسکالرشیپ تعلق می‌گیرد یا خیر: Eligible for Scholarship شرط بورسیه: - GPA >= 18 - Credits >= 90 💡 اگر مبتدی هستید: ابتدا روی بخش Academic Level تمرکز کنید و سپس Bonus را انجام دهید. ❓ اگر به راهنمایی نیاز داشتید: https://eitaa.com/joinchat/956171922Cb501d5a32f ⏰ مهلت ارسال پاسخ: فردا ساعت 20:00 🔺 امروز داریم اولین قدم‌های واقعی در دسته‌بندی داده‌ها (Classification Logic) را تمرین می‌کنیم؛ مفهومی که بعدها در Machine Learning بسیار مهم خواهد بود.