🔥 مدیریت خطاها در پایتون: از ساده تا حرفهای!
آیا میدانستید پایتون ۷ روش مختلف برای مدیریت خطا دارد؟
در این پست همهی آنها را بررسی میکنیم:
1️⃣ سادهترین روش (try/except)
try:
print(10 / 0)
except ZeroDivisionError:
print("خطا: تقسیم بر صفر!")
2️⃣ چندین خطا در یک بلاک
try:
# کد پرخطا
except (TypeError, ValueError) as e:
print(f"خطای نوع داده: {e}")
3️⃣ وقتی خطایی نباشد (else)
try:
result = 10 / 2
except:
print("خطا!")
else:
print(f"نتیجه: {result}") # 5.0
4️⃣ همیشه اجرا میشود (finally)
try:
file = open('data.txt')
except:
print("خطا در باز کردن فایل")
finally:
file.close() # مهم برای آزادسازی منابع
5️⃣ پرتاب خطای سفارشی (raise)
if age < 0:
raise ValueError("سن نمیتواند منفی باشد!")
6️⃣ ایجاد خطاهای سفارشی
class MyCustomError(Exception):
pass
raise MyCustomError("این یک خطای سفارشی است!")
7️⃣ مدیریت خطا با contextlib (حرفهای)
from contextlib import suppress
with suppress(FileNotFoundError):
os.remove('temp.txt') # اگر فایل نبود، خطا نگیر!
💎 نکات طلایی:
- از try/except برای خطاهای قابل پیشبینی استفاده کنید
- دستور else برای کدهایی که فقط وقتی خطایی نباشد باید اجرا شوند
- دستور finally برای تمیزکاری منابع (مثل بستن فایل/اتصال دیتابیس)
#بدانیم | #مدیریت_خطا | آموزش پایتون
🔥 مدیریت خطاها در پایتون: از ساده تا حرفهای!
آیا میدانستید پایتون ۷ روش مختلف برای مدیریت خطا دارد؟
در این پست همهی آنها را بررسی میکنیم:
1️⃣ سادهترین روش (try/except)
try:
print(10 / 0)
except ZeroDivisionError:
print("خطا: تقسیم بر صفر!")
2️⃣ چندین خطا در یک بلاک
try:
# کد پرخطا
except (TypeError, ValueError) as e:
print(f"خطای نوع داده: {e}")
3️⃣ وقتی خطایی نباشد (else)
try:
result = 10 / 2
except:
print("خطا!")
else:
print(f"نتیجه: {result}") # 5.0
4️⃣ همیشه اجرا میشود (finally)
try:
file = open('data.txt')
except:
print("خطا در باز کردن فایل")
finally:
file.close() # مهم برای آزادسازی منابع
5️⃣ پرتاب خطای سفارشی (raise)
if age < 0:
raise ValueError("سن نمیتواند منفی باشد!")
6️⃣ ایجاد خطاهای سفارشی
class MyCustomError(Exception):
pass
raise MyCustomError("این یک خطای سفارشی است!")
7️⃣ مدیریت خطا با contextlib (حرفهای)
from contextlib import suppress
with suppress(FileNotFoundError):
os.remove('temp.txt') # اگر فایل نبود، خطا نگیر!
💎 نکات طلایی:
- از try/except برای خطاهای قابل پیشبینی استفاده کنید
- دستور else برای کدهایی که فقط وقتی خطایی نباشد باید اجرا شوند
- دستور finally برای تمیزکاری منابع (مثل بستن فایل/اتصال دیتابیس)
#بدانیم | #مدیریت_خطا | آموزش پایتون
✔️ ماژول pathlib در پایتون برای مدیریت مسیرها و فایلها کاربرد زیادی داره، ولی خیلی وقتها کمتر ازش استفاده میشه.
در این مثال، از Path برای ساخت و مدیریت مسیر استفاده میکنیم. این ماژول خوانا بودن کد رو بالا میبره و کار با فایلها رو سادهتر میکنه. مخصوصاً توی پروژههای بزرگ، میتونه کمک کنه که مسیرها به راحتی مدیریت بشن.
اینطور کدها معمولاً برای تازهکارها به اندازه کافی توجهبرانگیز نیستند، ولی برای کاربران پیشرفتهتر، خیلی مفید و کاربردی میتونن باشن!
#بدانیم
آیا تا حالا نیاز داشتید بفهمید که توی یک لیست یا متن چه چیزهایی بیشتر تکرار شدن؟ 🤔
✔️ با Counter میتونید به راحتی تکرار هر عنصر رو بشمارید و دادهها رو تحلیل کنید!
در اینجا، Counter به راحتی به ما نشون میده که هر کدام از آیتمها چقدر تکرار شدهاند. این ویژگی خیلی کاربردیه وقتی بخواهیم دادههای بزرگ رو تجزیه و تحلیل کنیم.
#بدانیم #collections
import turtle
t = turtle.Turtle()
t.speed(0)
colors = ['red', 'purple', 'blue', 'green']
for x in range(360):
t.pencolor(colors[x%4])
t.width(x/100 + 1)
t.forward(x)
t.left(59)
turtle.done()
✔️ ساخت PDF با FPDF در پایتون
🔅 کاربردهای FPDF:
- ساخت گزارشهای خودکار
- تولید فاکتور و مدارک رسمی
- خروجی PDF از دادههای برنامه
🔅 ویژگیهای کلیدی:
- سبک و ساده برای تولید PDF
- قابلیت اضافه کردن متن، جداول و تصاویر
- تنظیم فونت و استایل متن
#fpdf | @learnpythonicy
> نصب کتابخانه:
> pip install fpdf2
✔️ انتخاب تصادفی ساده در پایتون
شبیهسازی پرتاب تاس (اعداد 1 تا 6)
انتخاب تصادفی نوبت بازیکنان (Sara یا Ali)
👈 ایده برای ارتقا:
1. سیستم نوبت دهی هوشمند:
- ابتدا به صورت تصادفی انتخاب میکند چه کسی بازی را شروع کند
- نتیجه تاس به همراه نام بازیکن چاپ میشود
2. قانون شانس مجدد:
- اگر بازیکن عدد 6 بیاورد (شرط if)
- پیام "شانس مجدد" نمایش داده میشود
- در این حالت نوبت به بازیکن بعدی نمیرسد و همان بازیکن دوباره تاس میاندازد
3. قابلیت توسعه:
- میتوانید لیست بازیکنان را گسترش دهید
- میتوانید قانون 6 آوردن را تغییر دهید (مثلا 2 بار پشت هم 6 بیاورد)
- میتوانید امتیازات را هم ذخیره کنید
کاربرد عملی
- پیادهسازی بازیهای رومیزی مثل ماروپله
- سیستم نوبتدهی در بازیهای گروهی
- شبیهسازی شرایط تصادفی در برنامهنویسی
👇👇👇👇
players = ["Sara", "Ali"]
current_player = random.choice(players)
dice_roll = random.randint(1, 6)
print(f"{current_player}'s turn - Rolled: {dice_roll}")
if dice_roll == 6:
print("Bonus turn!")
✔️ مثال ساده از ماژول datetime - نمایش تاریخ و ساعت فعلی
from datetime import datetime
# دریافت تاریخ و ساعت فعلی
now = datetime.now()
print("تاریخ و ساعت فعلی:")
print(now.strftime("%Y-%m-%d %H:%M:%S"))
ویژگیهای کلیدی
- نمایش فرمتهای مختلف تاریخ/ساعت
- محاسبه اختلاف بین دو تاریخ
- پشتیبانی از تقویم شمسی
کاربردهای سریع
- لاگگیری زمان رویدادها
- مدیریت مهلتهای پروژه
- برنامههای
#datetime | @learnpythonicy
> *برای تاریخ شمسی میتوانید از کتابخانه jdatetime استفاده کنید.*
✔️ مثال ساده از ماژول os - مدیریت فایلها و پوشهها
import os
# لیست تمام فایلهای دایرکتوری فعلی
files = os.listdir()
print("فایلهای موجود:")
for file in files:
print(file)
# ساخت پوشه جدید
os.mkdir("پوشه_جدید")
print("\nپوشه جدید ساخته شد!")
کاربردهای اصلی:
- مدیریت فایلهای سیستم
- تغییر مسیر دایرکتوری کار
- اجرای دستورات
نکته
- برای حذف فایل: os.remove("فایل.txt")
- برای بررسی وجود فایل: os.path.exists("فایل.txt")
> این ماژول برای اتوماسیون کارهای سیستمی عالی است!