✔️ مدیریت فایلها در پایتون با ۷ روش حرفهای!
برای کار با فایلها در پایتون، این تکنیکهای کاربردی را امتحان کنید:
1️⃣ باز کردن و خواندن فایل
with open('file.txt', 'r') as f:
content = f.read()
print(content)
2️⃣ نوشتن در فایل
with open('file.txt', 'w') as f:
f.write("سلام دنیا!")
3️⃣ افزودن به فایل
with open('file.txt', 'a') as f:
f.write("\nخط جدید")
4️⃣ خواندن خط به خط
with open('file.txt', 'r') as f:
for line in f:
print(line.strip())
5️⃣ بررسی وجود فایل
import os print(os.path.exists('file.txt')) # True یا False6️⃣ حذف فایل
import os os.remove('file.txt')7️⃣ مدیریت مسیرها با pathlib
from pathlib import Path
path = Path('file.txt')
print(path.exists())
print(path.read_text())
🗝 روش ویژه: خواندن و نوشتن فایلهای CSV با pandas
import pandas as pd df = pd.read_csv('data.csv') print(df.head()) df.to_csv('output.csv', index=False)نکات طلایی * همیشه از
withبرای مدیریت فایل استفاده کنید * برای مسیرهای پیچیده از
pathlibکمک بگیرید * برای دادههای جدولی از
pandasبهره ببرید #PythonMagic | #FileHandling | #pathlib | #pandas | @learnpythonic > *برای ذخیرهسازی، تحلیل داده و اتوماسیون کاربرد دارد*
✔️ کار با لیستها در پایتون با ۷ روش حرفهای!
برای مدیریت لیستها و دادههای متوالی، این تکنیکهای کاربردی را امتحان کنید:
1️⃣ ایجاد لیست
fruits = ['apple', 'banana', 'cherry']
print(fruits)
2️⃣ اضافه کردن عنصر
fruits.append('orange')
print(fruits)
3️⃣ درج عنصر در موقعیت خاص
fruits.insert(1, 'kiwi')
print(fruits)
4️⃣ حذف عنصر
fruits.remove('banana')
print(fruits)
5️⃣ دسترسی به عناصر با ایندکس
print(fruits[0]) # اولین عنصر
print(fruits[-1]) # آخرین عنصر
6️⃣ مرتبسازی لیست
numbers = [5, 2, 9, 1]
numbers.sort()
print(numbers)
7️⃣ لیستها با فهم لیست (List Comprehension)
squares = [x**2 for x in range(5)]
print(squares)
🗝 روش ویژه: تبدیل لیست به آرایه NumPy
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr * 2)
نکات طلایی
* برای اضافه و حذف عنصر از
appendو
removeاستفاده کنید * List comprehension کد شما را کوتاه و خواناتر میکند * برای محاسبات عددی بزرگ، لیستها را به
NumPy arrayتبدیل کنید #PythonMagic | #ListHandling | #NumPy | #ListComprehension | @learnpythonicy > *برای ذخیره داده، محاسبات و پردازش اطلاعات کاربرد دارد*
✔️ 10 Python Set Tricks You Should Know! 🐍✨
1️⃣ ساخت Set یکتا از لیست
unique_items = set([1, 2, 2, 3, 4])
2️⃣ افزودن آیتم
my_set.add(5)
3️⃣ حذف آیتم بدون خطا
my_set.discard(10) # Error نمیدهد
4️⃣ اجتماع دو مجموعه (Union)
result = set1 | set2
5️⃣ اشتراک دو مجموعه (Intersection)
common = set1 & set2
6️⃣ تفاضل مجموعهها (Difference)
diff = set1 - set2
7️⃣ بررسی زیرمجموعه بودن
if set1 <= set2:
print("Subset")
8️⃣ حذف آیتم تصادفی
item = my_set.pop()
9️⃣ ساخت Set Comprehension
squares = {x**2 for x in range(5)}
🔟 حذف آیتمهای تکراری از رشته
unique_chars = set("programming")
> ⚠️ ست ها(set) فوقالعاده سریع هستند (O(1) average lookup)، اما ترتیب را حفظ نمیکنند!
#Set | #PythonTricks | #DataStructures | @LearnPythonicy
👇 بیشتر از کدوم عملیات Set در پروژههات استفاده میکنی؟
✔️ 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 استفاده کن.
#AsyncIO #Concurrency #Backend #Performance #PythonTricks
👇 تو پروژههات بیشتر با 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این مشکلات را حل میکند! #DateTime | #PythonTips | @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 بهترین روش برای تولید سریع ساختار دادههای پیچیده است #PythonTips | #Dictionary | #Python3 | @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
#Day1
🎯 موضوع:
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 را هم میزارم.
🧡🔥 تغییرات بزرگ یک شبه اتفاق نمیافتند.