پایتون یک زبان برنامه نویسی محبوب است که یادگیری و استفاده از آن آسان است. اما مانند هر زبان برنامه نویسی، پایتون نیز مستعد خطا است.

در این آموزش، برخی از رایج ترین خطاهای پایتون و نحوه رفع آنها را پوشش خواهیم داد.

کسب اطلاعات بیشتر: چرا یادگیری پایتون برای مبتدیان و هر کس دیگری ایده آل است؟ 

خطاهای نحوی در پایتون

خطاهای نحوی زمانی رخ می دهند که شما یک اشتباه تایپی یا اشتباه دیگری در کد خود داشته باشید که باعث می شود نحو آن نامعتبر باشد. این خطاها معمولاً توسط مفسر پایتون هنگام اجرای کد شناسایی می شوند.

در اینجا چند نکته برای جلوگیری از خطاهای نحوی وجود دارد:

قبل از اجرا کد خود را از نظر غلط املایی یا سایر اشتباهات دوباره بررسی کنید.
از یک ویرایشگر کد استفاده کنید که از برجسته کردن نحو پشتیبانی می کند تا به شما در یافتن خطاهای نحوی کمک کند.
پیام خطا را با دقت بخوانید تا محل خطا را مشخص کنید.

مثال:

if x = 10:
    print("x is equal to 10")

در این مثال، ما سعی می کنیم با استفاده از عملگر انتساب (=) در داخل دستور if، مقدار 10 را به متغیر x نسبت دهیم.

اما سینتکس صحیح برای مقایسه مقادیر در دستور if استفاده از عملگر مقایسه (==) است.

بنابراین در اینجا نحوه تعمیر این یکی آمده است:

if x == 10:
    print("x is equal to 10")

خطاهای تورفتگی در پایتون

یکی از رایج ترین خطاهای پایتون، خطاهای تورفتگی است. برخلاف بسیاری از زبان های برنامه نویسی دیگر، پایتون از فضای خالی برای نشان دادن بلوک های کد استفاده می کند، بنابراین تورفتگی مناسب بسیار مهم است.

در اینجا چند قانون وجود دارد که باید در مورد تورفتگی در پایتون به خاطر داشته باشید:

  • از چهار فاصله برای هر سطح از تورفتگی استفاده کنید.
  • زبانه ها و فضاها را برای تورفتگی با هم مخلوط نکنید.
  • اطمینان حاصل کنید که تورفتگی شما در سرتاسر کدتان سازگار است.

برای جلوگیری از خطاهای تورفتگی، بهتر است از یک ویرایشگر کد استفاده کنید که از تورفتگی خودکار پشتیبانی می کند، مانند PyCharm یا Visual Studio Code.

مثال:

for i in range(10):
print(i)

در این مثال، کد داخل حلقه for به درستی فرورفته نشده است.

راه حل:

for i in range(10):
    print(i)

خطاهای نام در پایتون

هنگامی که سعی می کنید از متغیر یا تابعی استفاده کنید که تعریف نشده است، خطاهای نام رخ می دهد. برای مثال، اگر سعی کنید مقدار متغیری را که هنوز مقداری به آن اختصاص داده نشده است چاپ کنید، با خطای نام مواجه می شوید.

در اینجا چند نکته برای جلوگیری از اشتباهات نام وجود دارد:

  • مطمئن شوید که همه متغیرها و توابع را قبل از استفاده از آنها تعریف کرده اید.
  • املا و حروف بزرگ نام متغیرها و توابع خود را دوباره بررسی کنید.
  • از ابزارهای اشکال زدایی داخلی پایتون، مانند دستورات چاپی، برای کمک به ردیابی خطاهای نام استفاده کنید.

مثال:

my_variable = 5
print(my_vairable)

در این مثال، نام متغیر my_variable را به اشتباه my_vairable نوشتیم.

حل:

my_variable = 5
print(my_variable)

تایپ خطا در پایتون

یکی دیگر از خطاهای رایج در پایتون خطاهای نوع است. خطاهای نوع زمانی رخ می دهد که می خواهید عملیاتی را روی داده هایی از نوع اشتباه انجام دهید. به عنوان مثال، ممکن است سعی کنید یک رشته و یک عدد اضافه کنید، یا ممکن است سعی کنید به ویژگی یک شی که وجود ندارد دسترسی پیدا کنید.

در اینجا چند نکته برای جلوگیری از خطاهای نوع وجود دارد:

از یادداشت‌های نوع در کد خود استفاده کنید تا مشخص کنید چه نوع داده‌هایی را انتظار دارید.
از ابزارهای داخلی پایتون مانند ماژول تایپ و ابزار mypy استفاده کنید.
برای اطمینان از اینکه کد شما انواع مختلف داده ها را به درستی مدیریت می کند، تست های واحد بنویسید.
مثال:

x = "5"
y = 10
result = x + y

در این مثال سعی می کنیم یک رشته و یک عدد صحیح را به هم بچسبانیم که امکان پذیر نیست.

ثابت:

x = "5"
y = 10
result = int(x) + y

در اینجا، قبل از انجام جمع، رشته را با استفاده از تابع int() به یک عدد صحیح تبدیل می کنیم.

خطاهای ایندکس در پایتون

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

در اینجا چند نکته برای جلوگیری از خطاهای شاخص وجود دارد:

مطمئن شوید که از مقادیر شاخص درست برای دنباله خود استفاده می کنید.
از توابع داخلی پایتون، مانند len، برای تعیین طول دنباله خود قبل از تلاش برای دسترسی به موارد موجود در آن استفاده کنید.
برای رسیدگی به خطاهای ایندکس به‌خوبی از مدیریت استثناها، مانند بلوک‌ها و بلاک‌ها استفاده کنید.
مثال:

my_list = [1, 2, 3, 4]
print(my_list[5])

در این مثال، ما سعی می کنیم به یک آیتم در نمایه 5 دسترسی داشته باشیم که خارج از محدوده لیست است.

حل:

my_list = [1, 2, 3, 4]
print(my_list[3])

در اینجا، ما به آیتم در نمایه 3 دسترسی پیدا می کنیم که در محدوده لیست قرار دارد.

خطاهای کلیدی در پایتون

وقتی سعی می کنید با استفاده از کلیدی که وجود ندارد به فرهنگ لغت دسترسی پیدا کنید، خطاهای کلیدی رخ می دهد. برای مثال، اگر سعی کنید به مقدار مرتبط با کلیدی که در فرهنگ لغت تعریف نشده است دسترسی پیدا کنید، با یک خطای کلید مواجه خواهید شد.

در اینجا چند نکته برای جلوگیری از خطاهای کلیدی وجود دارد:

مطمئن شوید که از کلیدهای درست برای فرهنگ لغت خود استفاده می کنید.
از عملگر داخلی پایتون برای بررسی وجود کلید در فرهنگ لغت قبل از تلاش برای دسترسی به آن استفاده کنید.
برای رسیدگی به خطاهای کلیدی با ظرافت، از مدیریت استثنا، مانند بلوک‌های امتحان و غیر از آن استفاده کنید.
مثال:

my_dict = {"name": "John", "age": 25}
print(my_dict["gender"])

در این مثال، ما سعی می کنیم به مقدار کلید “جنسیت” که در فرهنگ لغت وجود ندارد، دسترسی پیدا کنیم.

ثابت:

my_dict = {"name": "John", "age": 25}
print(my_dict.get("gender", "Key not found"))

پیش از این، از متد get() برای دسترسی به مقدار کلید “جنسیت” استفاده می کنیم. آرگومان دوم متد get() مقدار پیش فرضی را مشخص می کند که در صورت نبود کلید باید برگردانده شود.

خطاهای مشخصه در پایتون

خطاهای ویژگی زمانی رخ می دهد که شما سعی می کنید به یک ویژگی از یک شی که وجود ندارد دسترسی پیدا کنید، یا زمانی که سعی می کنید به یک ویژگی به روشی اشتباه دسترسی پیدا کنید.

چندین نوع ویژگی در پایتون وجود دارد:

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

مثال:

my_list = [1, 2, 3, 4]
my_list.append(5)
my_list.add(6)

در این مثال، سعی می کنیم با استفاده از متد add() موردی را به لیست اضافه کنیم که برای لیست ها وجود ندارد.

ثابت:

my_list = [1, 2, 3, 4]
my_list.append(5)

در اینجا از متد append() برای افزودن یک آیتم به لیست استفاده می کنیم.

نکات عمومی
در اینجا چند نکته کلی برای جلوگیری از خطاهای رایج در پایتون آورده شده است:

  • از شیوه های کدنویسی خوب استفاده کنید، مانند نظر دادن به کد خود و پیروی از اصل DRY (تکرار نکنید).
  • تست‌های واحد را بنویسید تا خطاها را قبل از اینکه وارد کد تولید شما شوند، شناسایی کنید.
  • اسناد مربوط به ماژول ها و عملکردهایی را که استفاده می کنید بخوانید تا مطمئن شوید که از آنها به درستی استفاده می کنید.

نتیجه

پایتون یک زبان قدرتمند با ویژگی های بسیار است، اما مانند هر زبان برنامه نویسی، می تواند مستعد خطا باشد.

در این مقاله به برخی از رایج ترین خطاهای پایتون و نحوه رفع آنها پرداختیم. با درک این خطاها و نحوه رفع آنها، می توانید به یک برنامه نویس پایتون مطمئن تر و موثرتر تبدیل شوید.