تخطَّ إلى المحتوى

٣٠ يونيو ٢٠٢٦

حل أخطاء بايثون الشائعة للمبتدئين بالعربي

عند تعلّم Python ستواجه أخطاءً متكرّرة. فهم معناها يوفّر عليك ساعات. إليك أشهرها وحلّها.

كيف تقرأ الخطأ؟

بايثون تعرض traceback؛ اقرأ السطر الأخير أولًا فهو نوع الخطأ ووصفه، ثم ارجع لرقم السطر.

1) IndentationError — مسافات بادئة خاطئة

def greet():
print("مرحبًا")   # ❌ IndentationError

الحلّ: أزِح السطر بـ 4 مسافات. لا تخلط Tab مع Space.

def greet():
    print("مرحبًا")   # ✅

2) NameError — اسم غير معرّف

print(mesage)   # ❌ NameError: name 'mesage' is not defined

الحلّ: خطأ إملائي أو متغيّر لم يُعرَّف. تأكّد من الاسم والتعريف قبل الاستخدام.

3) TypeError — نوع غير مناسب

age = 20
print("عمري " + age)   # ❌ TypeError: can only concatenate str

الحلّ: حوّل النوع:

print("عمري " + str(age))   # ✅

4) IndexError — خارج حدود القائمة

arr = [1, 2, 3]
print(arr[5])   # ❌ IndexError: list index out of range

الحلّ: الفهرس يبدأ من 0 وينتهي عند len(arr) - 1. تحقّق من الطول.

جدول الأخطاء السريع

الخطأالمعنىالحلّ
IndentationErrorمسافات خاطئة4 مسافات ثابتة
NameErrorاسم غير معرّفراجع الإملاء/التعريف
TypeErrorنوع غير مناسبحوّل بـ str() / int()
IndexErrorفهرس خارج الحدودتحقّق من len()
KeyErrorمفتاح غير موجوداستخدم .get()

الخلاصة

الأخطاء جزء طبيعي من التعلّم. اقرأ السطر الأخير، افهم نوع الخطأ، وستحلّ معظم المشاكل بسرعة.

ابدأ مسار Python من الصفر.

الأسئلة الشائعة

ما هو خطأ IndentationError؟

يحدث عندما تكون المسافات البادئة (indentation) غير متّسقة. بايثون تعتمد على المسافات لتحديد الكتل، فاستخدم 4 مسافات ثابتة ولا تخلط المسافات مع Tab.

ما الفرق بين NameError و TypeError؟

NameError يعني أنك استخدمت اسمًا غير معرّف (متغيّر أو دالة)، بينما TypeError يعني أنك أجريت عملية على نوع بيانات غير مناسب (مثل جمع نصّ مع رقم).

كيف أقرأ رسالة الخطأ في بايثون؟

اقرأ السطر الأخير أولًا — فهو يحدّد نوع الخطأ ووصفه، ثم تتبّع رقم السطر المذكور في traceback للوصول إلى مصدر المشكلة.

اقرأ أيضًا

تصفّح كل المقالات في المدوّنة، أو ابدأ التعلّم من المسارات و خرائط الطريق.