برنامهنویسی یک فرایند پیچیده است و چون این روند پیچیده و گاهی بسیار گسترده و عظیم توسط انسان انجام میگیرد؛ امکان اشتباه و بروز خطا امری بدیهی است. در اصطلاح برنامهنویسی، به مشکلات مختلف و متنوعی ـ که دلیل اتفاق آنها هم متفاوت است ـ باگ (bug) یا خطا گفته میشود. فرایند شناسایی و رفع خطاها و باگهای موجود در یک برنامه، خطایابی یا اشکالزدایی (Debugging) نامیده میشود.
در علم برنامهنویسی کامپیوتر سه نوع اصلی خطا یا باگ وجود دارد که عبارتند از:
خطای منطقی (syntax error) ؛
خطای زمان اجرا (runtime) ؛
خطای معنایی (semantic error) ؛
خطای نحوی (syntax error) .
مفسر پایتون فقط قادر به اجرای کدی است که از قواعد نحوی زبان پایتون تبعیت کند. در غیر این صورت اجرای روند اصلی برنامه متوقف شده و پیغام خطایی نمایش داده میشود. نحو یک زبان برنامه نویسی (language syntax) همان ساختار و قوانین آن زبان خاص است. برای مثال در زبان انگلیسی هر جملهای باید با حرف بزرگ شروع و با یک علامت خاتمه دهندۀ جمله چون نقطه پایان یابد. هرگونه ساختار متفاوت یک خطای نحوی است.
اگر در بخشی از برنامه خطای نحویای وجود داشته باشد، برنامه قابل اجرا نخواهد بود! در این حالت مفسر پایتون با چاپ کردن عبارتی سعی میکند محل وقوع خطا و نوع آن را مشخص کند تا برنامهنویس برای رفع آن اقدام نماید. در روند برنامهنویسی و ادامۀ کار با این نوع خطا به وفور برخورد خواهید کرد. به مرور زمان و پس از شناخت انواع مختلف خطاها و روشهای حل و خطایابی آن سرعت شما در خطایابی برنامه بهتر و بهتر خواهد شد.