1. SyntaxError
- الوصف: يحدث هذا الخطأ عندما يكون الكود المكتوب غير صحيح من الناحية النحوية (Syntax) وفقًا لقواعد لغة Python.
- الأسباب الشائعة:
- نسيان الأقواس أو النقطتين (
:
) في نهاية العبارات الشرطية أو الحلقات. - استخدام علامات ترقيم خاطئة (مثل
=
بدلًا من==
). - نسيان إغلاق الأقواس أو علامات الاقتباس.
- نسيان الأقواس أو النقطتين (
- مثال:
if x = 5: # SyntaxError: يجب استخدام == بدلًا من = print("x is 5")
2. NameError
- الوصف: يحدث هذا الخطأ عند محاولة استخدام متغير أو دالة لم يتم تعريفها.
- الأسباب الشائعة:
- كتابة اسم المتغير أو الدالة بشكل خاطئ.
- محاولة استخدام متغير قبل تعريفه.
- نسيان استيراد مكتبة أو دالة مطلوبة.
- مثال:
print(y) # NameError: إذا لم يتم تعريف y مسبقًا
3. TypeError
- الوصف: يحدث هذا الخطأ عند محاولة إجراء عملية على نوع بيانات غير متوافق مع العملية.
- الأسباب الشائعة:
- محاولة جمع أنواع بيانات مختلفة (مثل
str + int
). - تمرير عدد خاطئ من المعاملات لدالة.
- استخدام كائن غير قابل للاستدعاء (Non-callable) كدالة.
- محاولة جمع أنواع بيانات مختلفة (مثل
- مثال:
x = "5" y = 10 print(x + y) # TypeError: لا يمكن جمع str مع int
4. KeyError
- الوصف: يحدث هذا الخطأ عند محاولة الوصول إلى مفتاح غير موجود في القاموس (Dictionary).
- الأسباب الشائعة:
- كتابة اسم المفتاح بشكل خاطئ.
- نسيان إضافة المفتاح إلى القاموس قبل الوصول إليه.
- مثال:
my_dict = {"name": "Alice", "age": 25} print(my_dict["address"]) # KeyError: المفتاح "address" غير موجود
5. ImportError
- الوصف: يحدث هذا الخطأ عند فشل استيراد مكتبة أو وحدة (Module) أو دالة.
- الأسباب الشائعة:
- كتابة اسم المكتبة أو الوحدة بشكل خاطئ.
- عدم تثبيت المكتبة المطلوبة.
- محاولة استيراد دالة غير موجودة في الوحدة.
- مثال:
import non_existent_module # ImportError: الوحدة غير موجودة from math import non_existent_function # ImportError: الدالة غير موجودة
كيفية التعامل مع هذه الأخطاء:
-
SyntaxError:
- تحقق من كتابة الكود بعناية.
- استخدم أدوات مثل
pylint
أوflake8
للكشف عن الأخطاء النحوية.
-
NameError:
- تأكد من تعريف المتغير أو الدالة قبل استخدامها.
- تحقق من كتابة الأسماء بشكل صحيح.
-
TypeError:
- تأكد من أن أنواع البيانات متوافقة مع العمليات.
- استخدم الدوال مثل
type()
أوisinstance()
للتحقق من نوع البيانات.
-
KeyError:
- تحقق من وجود المفتاح في القاموس قبل الوصول إليه باستخدام
in
:if "address" in my_dict: print(my_dict["address"])
- استخدم
.get()
لتجنب الخطأ:print(my_dict.get("address", "Default Value"))
- تحقق من وجود المفتاح في القاموس قبل الوصول إليه باستخدام
-
ImportError:
- تأكد من كتابة اسم المكتبة أو الوحدة بشكل صحيح.
- تأكد من تثبيت المكتبة باستخدام
pip install
. - تحقق من وجود الدالة أو الكائن في الوحدة قبل استيرادها.