آموزش سریع خطایابی در پایتون | استفاده از دیباگر (Debugger)
خطای دسترسی
برای ثبت پاسخ، ابتدا باید در سایت وارد شوید.
معرفی دیباگر پایتون
دیباگر (Debugger) ابزاری است که به شما اجازه میدهد برنامه خود را گام به گام اجرا کنید و در هر لحظه ببینید که متغیرها چه مقداری دارند و جریان برنامه به کدام سمت میرود. تصور کنید برنامهتان مثل یک فیلم است؛ دیباگر به شما اجازه میدهد فیلم را آهسته و فریم به فریم ببینید تا نقطهای که مشکل دارد را پیدا کنید.
پایتون به صورت پیشفرض یک دیباگر ساده به نام pdb (مخفف Python Debugger) دارد. این دیباگر درون خود پایتون تعبیه شده و نیازی به نصب ندارد. شما میتوانید آن را با نوشتن import pdb در برنامه خود فراخوانی کنید.
نحوه استفاده اولیه:
برای شروع دیباگ کردن، کافیست در قسمتی از برنامه که شک دارید خطا وجود دارد، دستور pdb.set_trace() را اضافه کنید. وقتی برنامه به این خط برسد، اجرا متوقف میشود و شما وارد یک محیط تعاملی جدید میشوید (در ترمینال یا کنسول) که با علامت (Pdb) مشخص میشود. در این محیط میتوانید دستورات زیر را تایپ کنید:
c(continue): ادامه اجرای برنامه تا توقف بعدی.n(next): اجرای خط بعدی و توقف دوباره.s(step): اگر خط فعلی یک تابع (مثلprintیا تابع خودتان) را صدا میزند، وارد داخل آن تابع شوید و آن را گام به گام اجرا کنید.l(list): نمایش ۱۱ خط کد اطراف خط فعلی تا ببینید کجا هستید.p <نام متغیر>(print): مقدار یک متغیر را در لحظه فعلی چاپ کنید. مثلاًp xمقدارxرا نشان میدهد.q(quit): از دیباگر خارج شده و برنامه را به طور کامل متوقف کنید.
مثال ساده:
فرض کنید برنامه زیر را دارید و میخواهید ببینید چرا نتیجه جمع اشتباه است:
def جمع(a, b):
نتیجه = a + b
return نتیجه
x = 5
y = "3"
import pdb
pdb.set_trace() # <-- اینجا توقف میکند
z = جمع(x, y)
print(z)
وقتی برنامه به pdb.set_trace() میرسد، توقف میکند. حالا میتوانید تایپ کنید:
p x→ خروجی:5p y→ خروجی:'3'(نوعش رشته است، نه عدد!)- حالا با دیدن این موضوع متوجه میشوید که
yرشته است و عملگر+آن را به هم میچسباند (نه جمع ریاضی). بعد از این کشف، میتوانید تایپ کنیدcتا برنامه ادامه پیدا کند و خطا را ببینید.
نکته مهم برای مبتدیان: استفاده از print برای خطایابی سریعتر است، اما دیباگر به شما قدرت کنترل کامل را میدهد. در پروژههای بزرگ، دیباگر ابزاری حیاتی است.
برای ثبت پرسش ابتدا در سایت وارد شوید.