در زبان برنامهنویسی پایتون، انواع مختلف خطاها وجود دارد که میتوانند در هنگام اجرای برنامه شما رخ دهند. برخی از شایع ترین خطاهای پایتون عبارتند از:
- خطاهای سینتکس (Syntax errors): این خطاها در صورتی رخ میدهند که پایتون نتواند با سینتکس درستی برنامه شما را تفسیر کند. برخی مثالهای شایع از این نوع خطاها شامل عدم استفاده از پرانتزها، نقطهویرگول، دو نقطه ویرگول و… میباشد.
- خطاهای نام تعریف نشده (Name errors): این خطاها در صورتی رخ میدهند که یک متغیر یا تابعی که تعریف نشده است، در برنامه شما استفاده شود.
- خطاهای نوع داده (Type errors): این خطاها در صورتی رخ میدهند که نوع دادهای که شما در برنامه استفاده میکنید، با نوعی که انتظار میرود تفاوت داشته باشد. برای مثال، اگر شما یک رشته را در یک رشته دیگر ضرب کنید، خطا رخ خواهد داد.
- خطاهای اندیسدهی (Index errors): این خطاها در صورتی رخ میدهند که شما به یک لیست یا رشته با اندیسی دسترسی کنید که وجود ندارد. برای مثال، اگر شما به اندیس ۳ در یک لیست با ۲ عضو دسترسی کنید، خطا رخ میدهد.
- خطاهای ماژول (Module errors): این خطاها در صورتی رخ میدهند که پایتون نتواند یک ماژول مورد نیاز برنامه شما را پیدا کند یا اجرای آن ماژول با خطا مواجه شود.
- خطاهای فایل (File errors): این خطاها در صورتی رخ میدهند که پایتون نتواند با یک فایل مشکلی را حل کند، برای مثال، فایلی که شما میخواهید باز کنید وجود ندارد.
- خطاهای اجرایی (Runtime errors): این خطاها در زمان اجرای برنامه شما رخ میدهند. برخی از مثالهای شایع از این نوع خطاها شامل تقسیم بر صفر، دسترسی به یک فایلی که در حال استفاده است و… میباشد.
- خطاهای فاصله (IndentationError): این خطا مربوط به شرایطی است که فاصله گذاری مناسب از ابتدای خط انجام نشده است. مثلاً وقتی بدنه دستور for باید با یک تو رفتگی از ابتدای خط نوشته شده باشد ولی این اتفاق نیفتد
- خطاهای استثنائی (Exception errors): این خطاها مربوط به شرایط بیشتری هستند که ممکن است در زمان اجرای برنامه شما رخ دهد. برای مثال، اگر شما به دنبال یک فایل باشید که وجود ندارد، یک خطا استثنائی پخش خواهد شد.
همچنین، باید توجه داشت که برخی خطاهای پایتون ممکن است به دلیل عملکرد غیرمنتظره سیستم عامل، مشکلات سخت افزاری یا دیگر عوامل بیرونی رخ دهند که با خود زبان پایتون مرتبط نیستند.
مثال هایی از انواع این خطا ها
بهترین روش برای فهمیدن خطاهای مختلف در پایتون، تجربه کدنویسی و دیدن خطاها در برنامههای واقعی است. اما به عنوان مثالهایی از هر نوع خطا میتوانید به موارد زیر مراجعه کنید. با اجرای هر کدام می توانید خطای مورد نظر را در کامپایلر آنلاین ببینید:
- خطاهای سینتکس:
SyntaxError: invalid syntax
این خطا معمولا به دلیل نداشتن پرانتز یا نقطهویرگول در جای مناسب در برنامه اتفاق میافتد، به عنوان مثال:
print "hello world"
این کد درست نیست، باید از پرانتز استفاده کنید:
print("hello world")
- خطاهای نام تعریف نشده:
NameError: name 'x' is not defined
این خطا در صورتی رخ میدهد که شما یک متغیر یا تابع را در برنامه خود استفاده کنید که تعریف نشده است، به عنوان مثال:
print(x)
در این حالت، متغیر x تعریف نشده است.
- خطاهای نوع داده:
TypeError: can't multiply sequence by non-int of type 'str'
این خطا در صورتی رخ میدهد که شما سعی میکنید یک رشته را در یک رشته دیگر ضرب کنید، به عنوان مثال:
print("hello" * "world")
در این حالت، رشته “world” نمیتواند در یک عمل ضرب با رشته “hello” شرکت کند.
- خطاهای اندیسدهی:
IndexError: list index out of range
این خطا در صورتی رخ میدهد که شما به یک اندیسی دسترسی کنید که در لیست یا رشته مورد نظر وجود ندارد، به عنوان مثال:
my_list = [1, 2, 3]
print(my_list[3])
در این حالت، اندیس 3 در لیست موجود نیست.
- خطاهای ماژول:
ModuleNotFoundError: No module named 'my_module'
این خطا در صورتی رخ میدهد که پایتون نتواند یک ماژول را پیدا کند، به عنوان مثال:
import my_module
در این حالت، ماژول my_module وجود ندارد.
- خطاهای فایل:
FileNotFoundError: [Errno 2] No such file or directory: 'myfile.txt'
این خطا در صورتی رخ میدهد که پایتون نتواند یک فایل را پیدا کند، به عنوان مثال:
with open('myfile.txt', 'r') as f:
print(f.read())
در این حالت، فایل myfile.txt وجود ندارد.
- خطاهای اجرایی:
ZeroDivisionError: division by zero
این خطا در صورتی رخ میدهد که شما یک عدد را بر صفر تقسیم کنید، به عنوان مثال:
print(1/0)
در این حالت، تقسیم بر صفر غیرممکن است.
- خطاهای تو رفتگی:
IndentationError: expected an indented block
این خطا در صورتی رخ میدهد که شما بدنه دستور for را بدون تو رفتگی نوشته باشید. یا بدنه دستور if و مانند اینها
my_list = [1, 2, 3]
for i in my_list:
print(my_list[i])
- خطاهای استثنائی:
ValueError: invalid literal for int() with base 10: 'abc'
این خطا در صورتی رخ میدهد که شما سعی میکنید یک رشته را به یک عدد صحیح تبدیل کنید، اما رشته شامل کاراکترهای غیرعددی است، به عنوان مثال:
print(int('abc'))
در این حالت، رشته “abc” شامل کاراکترهای غیرعددی است که نمیتواند به یک عدد تبدیل شود.
دیدگاهها