دیباگ یعنی فاصله بین رفتار مورد انتظار و رفتار واقعی رو پیدا و اصلاح کنیم. اولین قدم، تشخیص نوع مسئله است. خطای نحوی وقتی اتفاق میافته که پایتون اصلاً نتونه ساختار نوشته رو بفهمه؛ مثلاً دونقطه یک if جا افتاده. خطای زمان اجرا بعد از شروع اجرای کد رخ میده؛ مثل تقسیم بر صفر. برنامهای هم ممکنه بدون هیچ استثنایی اجرا بشه ولی جواب اشتباه بده که بهش باگ منطقی میگیم.
در مثال، ساختار تابع درسته اما ورودی صفر باعث خطای زمان اجرا میشه. خطای رایج اینه که همه مشکلات رو با اضافهکردن try/except بپوشونیم. مدیریت استثنا، ساختار نحوی خراب رو درست نمیکنه و جواب منطقی غلط رو هم قابل اعتماد نمیکنه. اول پیام و ورودی ایجادکننده مشکل رو بخون. بعد با یک تغییر کوچک علت رو بررسی کن؛ تغییر همزمان چند بخش، تشخیص اثر اصلاح رو سخت میکنه.
✍️ مثال حلشده:
def divide(a, b):
return a / b
# divide(8, 0) خطای ZeroDivisionError میدهد.
assert divide(8, 2) == 4
حالا نوبت توئه: تابع divide را بررسی کن: ورودی (8, 2) خروجی 4 میدهد و ورودی (8, 0) در زمان اجرا ZeroDivisionError دارد. این گام آموزشی است؛ تفاوت این مشکل با if بدون دونقطه و با یک فرمول اشتباه را تشخیص بده. نمونه را بدون ورودی تعاملی بخوان.
فعالیت شما
تابع divide را بررسی کن: ورودی (8, 2) خروجی 4 میدهد و ورودی (8, 0) در زمان اجرا ZeroDivisionError دارد. این گام آموزشی است؛ تفاوت این مشکل با if بدون دونقطه و با یک فرمول اشتباه را تشخیص بده. نمونه را بدون ورودی تعاملی بخوان.