eitaa logo
آموزش پایتون
63 دنبال‌کننده
244 عکس
106 ویدیو
52 فایل
ارتباط: https://eitaa.com/joinchat/956171922Cb501d5a32f لینک همین کانال: @LearnPythonIcy لینک کانال تلگرام: https://t.me/learnpythonicy
مشاهده در ایتا
دانلود
کار با فایل‌های YAML در Python با کتابخانه PyYAML کتابخانه PyYAML امکان کار آسان و مؤثر با فایل‌های YAML (YAML Ain’t Markup Language) را فراهم می‌کند. این فرمت معمولاً برای پیکربندی‌ها، تنظیمات و تبادل داده‌های ساختاریافته استفاده می‌شود.
import yaml

# داده‌ای که می‌خواهیم در فایل ذخیره کنیم
data_to_write = {'name': 'علی', 'age': 25, 'city': 'تهران'}

# نوشتن داده در فایل YAML
with open('example.yaml', 'w') as file:
    yaml.dump(data_to_write, file, default_flow_style=False)

# خواندن داده از فایل YAML
with open('example.yaml', 'r') as file:
    loaded_data = yaml.safe_load(file)
    print(f"داده‌های بارگذاری شده: {loaded_data}")
خروجی فایل example.yaml: age: 25 city: تهران name: علی در این مثال، ما دیکشنری data_to_write را در فایل example.yaml ذخیره کرده و سپس داده‌ها را دوباره در متغیر loaded_data بارگذاری می‌کنیم. کتابخانه PyYAML ابزار ساده و خوانایی برای کار با داده‌های YAML در Python فراهم می‌کند. چه برای ذخیره پیکربندی‌ها، چه تبادل داده‌های ساختاریافته، PyYAML باعث می‌شود کد شما خوانا و آسان برای استفاده باشد. 🙂‍↔️ | | @learnpythonicy
این تست واقعاً ذهن آدمو درگیر می‌کنه 😈 اول فکر کن خروجی این کد چیه؟ 🤯 و بعد توضیحات و بخون! ❓چرا - خط ۲: append روی لیست مشترک، همه رو [1] می‌کنه - خط ۳: x[1] + [2] یه لیست جدیــد می‌سازه و به x[1] نسبت داده می‌شه ← دیگه با بقیه مشترک نیست، میشه [2] - خط ۴: extend روی لیست مشترک (که هنوز x[0] و x[2] بهش وصله) عدد ۳ رو اضافه می‌کنه ← هر دو می‌شن [1, 3] 🔥نکته تستیِ پست عملگر + همیشه یه لیست جدید می‌سازه، در حالی که append و extend روی لیست موجود تغییر اعمال می‌کنند! Output: [[1, 3], [2], [1, 3]] 🎯 سوال اگه به جای x[1] = x[1] + [2] می‌نوشتیم x[1].append(2) چی میشد؟ 🤔👇 | @learnpythonicy
کار با فایل‌های YAML در Python با کتابخانه PyYAML کتابخانه PyYAML امکان کار آسان و مؤثر با فایل‌های YAML (YAML Ain’t Markup Language) را فراهم می‌کند. این فرمت معمولاً برای پیکربندی‌ها، تنظیمات و تبادل داده‌های ساختاریافته استفاده می‌شود. import yaml # داده‌ای که می‌خواهیم در فایل ذخیره کنیم data_to_write = {'name': 'علی', 'age': 25, 'city': 'تهران'} # نوشتن داده در فایل YAML with open('example.yaml', 'w') as file: yaml.dump(data_to_write, file, default_flow_style=False) # خواندن داده از فایل YAML with open('example.yaml', 'r') as file: loaded_data = yaml.safe_load(file) print(f"داده‌های بارگذاری شده: {loaded_data}") خروجی فایل example.yaml: age: 25 city: تهران name: علی در این مثال، ما دیکشنری data_to_write را در فایل example.yaml ذخیره کرده و سپس داده‌ها را دوباره در متغیر loaded_data بارگذاری می‌کنیم. کتابخانه PyYAML ابزار ساده و خوانایی برای کار با داده‌های YAML در Python فراهم می‌کند. چه برای ذخیره پیکربندی‌ها، چه تبادل داده‌های ساختاریافته، PyYAML باعث می‌شود کد شما خوانا و آسان برای استفاده باشد. 🙂‍↔️ | | @learnpythonicy
✔️ مدیریت فایل‌ها در پایتون با ۷ روش حرفه‌ای! برای کار با فایل‌ها در پایتون، این تکنیک‌های کاربردی را امتحان کنید: 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 یا False
6️⃣ حذف فایل
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
بهره ببرید | | | | @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
تبدیل کنید | | | | @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)، اما ترتیب را حفظ نمی‌کنند! | | | @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 استفاده کن. 👇 تو پروژه‌هات بیشتر با 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