X

آموزش سریع خطایابی در پایتون | خطاهای نحوی (Syntax Errors)

شناسایی خطاهای نحوی

خطاهای نحوی یا Syntax Errors رایج‌ترین و ساده‌ترین نوع خطا برای تشخیص هستند. این خطاها زمانی رخ می‌دهند که شما قوانین نوشتاری زبان پایتون را رعایت نکرده باشید. مفسر پایتون قبل از حتی اجرای یک خط از کد شما، آن را از نظر ساختاری بررسی می‌کند و اگر اشتباهی در نحو (syntax) کد وجود داشته باشد، برنامه اصلاً اجرا نخواهد شد و بلافاصله یک پیغام خطا نشان داده می‌شود.

مهم‌ترین ویژگی این خطاها این است که مفسر پایتون محل دقیق وقوع خطا را به شما نشان می‌دهد. این کار با یک فلش (^) کوچک که زیر اولین کاراکتری که باعث سردرگمی مفسر شده است قرار می‌گیرد، انجام می‌شود. همچنین شماره خطی که خطا در آن رخ داده است نیز اعلام می‌شود.

بیایید با چند مثال رایج این خطاها را بشناسیم:

۱. فراموش کردن دو نقطه (:) در انتهای دستورات مرکب:

if x > 5  # خطا: فراموش کردن دو نقطه
    print("x بزرگتر از ۵ است")

پیغام خطا: SyntaxError: expected ':'

۲. استفاده نادرست از تورفتگی (Indentation):

def greet():
print("Hello!")  # خطا: این خط باید با فاصله (indent) نسبت به خط قبل شروع شود.

پیغام خطا: IndentationError: expected an indented block

۳. باز کردن یک پرانتز، کروشه یا آکولاد و بستن آن را فراموش کردن:

my_list = [1, 2, 3  # خطا: بستن کروشه ] فراموش شده است
print(my_list)

پیغام خطا: SyntaxError: unexpected EOF while parsing

۴. نوشتن یک عملگر یا کلمه کلیدی به صورت نادرست:

x = 5
iff x > 3:  # خطا: کلمه کلیدی 'if' به اشتباه 'iff' نوشته شده است
    print("Yes")

پیغام خطا: SyntaxError: invalid syntax

هنگام مواجهه با یک SyntaxError، این مراحل ساده را دنبال کنید:

  1. به شماره خطی که در پیغام خطا указа شده است نگاه کنید.
  2. به دقت آن خط و خطوط بالایی آن را بررسی کنید. گاهی اوقات منشأ خطا در خط قبل از خط گزارش شده است (مثل فراموش کردن بستن یک پرانتز در خط بالا).
  3. به علامت فلش (^) دقت کنید. این علامت معمولاً دقیقاً روی کاراکتر یا بلافاصله بعد از جایی که مفسر متوجه مشکل شده است، قرار می‌گیرد.
  4. پیغام خطا را بخوانید. عباراتی مانند expected ':' یا unmatched '(' سرنخ بسیار واضحی از چیزی که فراموش شده است، به شما می‌دهند.

با کمی تمرین، چشم شما به سرعت این خطاهای کوچک را خواهد دید و برطرف کردن آن‌ها به یک کار instantaneous تبدیل خواهد شد.

پرسش و پاسخ این درس

برای ثبت پرسش ابتدا در سایت وارد شوید.

  • 1
  • 2
  • 3