الأخطاء الشائعة: السبب والإصلاح
منقول من الكتاب المرجعي: docs/handbook/errors/common.md · الإيداع 7a52f6c
لكل خطأ مثال يسببه (الناتج كما يطبعه المجمّع، برمز خروجه) ومثال يصلحه؛ كلاهما يُشغَّل في tests/test_docs.py.
الفهرس الكامل لكل رسالة في فهرس رسائل الأخطاء والتحذيرات. رمز 2: خطأ ترجمة لم يُنفَّذ معه شيء؛ رمز 3: خطأ تشغيل،
ويبقى ما طُبع قبله.
نص مع عدد بـ+
رابط إلى قسم «نص مع عدد بـ+»يسببه:
اطبع("العمر " + 30)رمز الخروج: 2
في فهرس الأخطاء: E0226
يصلحه:
اطبع("العمر " + نص(30))اطبع("العمر ", 30)نسيان : بعد الشرط
رابط إلى قسم «نسيان : بعد الشرط»يسببه:
س = 3اذا س > 2 اطبع(س)رمز الخروج: 2
في فهرس الأخطاء: E0019
يصلحه:
س = 3اذا س > 2: اطبع(س)مسافة بادئة لا تطابق
رابط إلى قسم «مسافة بادئة لا تطابق»يسببه:
اذا صواب: اطبع(1) اطبع(2)رمز الخروج: 2
في فهرس الأخطاء: E0006
يصلحه:
اذا صواب: اطبع(1) اطبع(2)متغير غير معرَّف (أو خطأ إملائي)
رابط إلى قسم «متغير غير معرَّف (أو خطأ إملائي)»يسببه:
عداد = 1اطبع(عدد_)رمز الخروج: 2
في فهرس الأخطاء: E0138
يصلحه:
عداد = 1اطبع(عداد)تغيير نوع المتغير
رابط إلى قسم «تغيير نوع المتغير»يسببه:
س = 1س = "واحد"رمز الخروج: 2
في فهرس الأخطاء: E0408
يصلحه:
س = 1وصف = "واحد"اطبع(س, " ", وصف)استدعاء دالة قبل تعريفها
رابط إلى قسم «استدعاء دالة قبل تعريفها»يسببه:
اطبع(ضعف(2))داله ضعف(س عدد) عدد: ارجع س * 2رمز الخروج: 2
في فهرس الأخطاء: E0125
يصلحه:
داله ضعف(س عدد) عدد: ارجع س * 2اطبع(ضعف(2))فهرس خارج القائمة
رابط إلى قسم «فهرس خارج القائمة»يسببه:
ق = [1, 2, 3]اطبع(ق[3])رمز الخروج: 3
في فهرس الأخطاء: E0321
يصلحه:
ق = [1, 2, 3]اطبع(ق[طول(ق) - 1])مفتاح غائب من القاموس
رابط إلى قسم «مفتاح غائب من القاموس»يسببه:
ع = {"سارة": 30}اطبع(ع["علي"])رمز الخروج: 3
في فهرس الأخطاء: E0337
يصلحه:
ع = {"سارة": 30}اذا يحوي(ع, "علي"): اطبع(ع["علي"])غير ذلك: اطبع("لا عمر لعلي")القسمة على صفر
رابط إلى قسم «القسمة على صفر»يسببه:
ب = 0اطبع(10 / ب)رمز الخروج: 3
في فهرس الأخطاء: E0403
يصلحه:
ب = 0اذا ب != 0: اطبع(10 / ب)غير ذلك: اطبع("لا قسمة على صفر")كسر في متغير عدد
رابط إلى قسم «كسر في متغير عدد»يسببه:
س عدد = 2.5رمز الخروج: 2
في فهرس الأخطاء: E0252
يصلحه:
س عدد = عدد(2.5)ك كسر = 2.5اطبع(س, " ", ك)تحويل نص إلى عدد بلا معالجة الفشل
رابط إلى قسم «تحويل نص إلى عدد بلا معالجة الفشل»عدد(نص) من النوع !عدد: النص قد لا يكون عدداً، فيُعالَج في موضعه.
يسببه:
اطبع(عدد("ثلاثة") + 1)رمز الخروج: 2
في فهرس الأخطاء: E0399
يصلحه:
اطبع((عدد("ثلاثة") والا 0) + 1)ن = عدد("٣") والا خ: اطبع("ليس عدداً: ", خ) 0اطبع(ن)نتيجة دالة قد تفشل مهملة
رابط إلى قسم «نتيجة دالة قد تفشل مهملة»يسببه:
استورد ملفاتملفات.اكتب_ملف("ناتج.txt", "سطر\n")رمز الخروج: 2
في فهرس الأخطاء: E0397
يصلحه:
استورد ملفاتملفات.اكتب_ملف("ناتج.txt", "سطر\n") والا خ: اطبع("تعذّرت الكتابة: ", خ)جرّب ملفات.الحق_بملف("ناتج.txt", "سطر ثانٍ\n")اطبع(جرّب ملفات.اقرأ_ملف("ناتج.txt"))جرّب في دالة لا ترجع خطأ
رابط إلى قسم «جرّب في دالة لا ترجع خطأ»يسببه:
داله اقرأ_عدد(ن نص) عدد: ارجع جرّب عدد(ن)اطبع(اقرأ_عدد("5"))رمز الخروج: 2
في فهرس الأخطاء: E0052
يصلحه:
داله اقرأ_عدد(ن نص) !عدد: ارجع جرّب عدد(ن)اطبع(اقرأ_عدد("5") والا -1, " ", اقرأ_عدد("س") والا -1)دالة لا ترجع في كل مسار
رابط إلى قسم «دالة لا ترجع في كل مسار»يسببه:
داله اشارة(س عدد) نص: اذا س > 0: ارجع "موجب"اطبع(اشارة(-1))رمز الخروج: 3
يصلحه:
داله اشارة(س عدد) نص: اذا س > 0: ارجع "موجب" ارجع "غير موجب"اطبع(اشارة(-1))مقارنة القوائم مباشرة
رابط إلى قسم «مقارنة القوائم مباشرة»يسببه:
اطبع([1, 2] == [1, 2])رمز الخروج: 2
في فهرس الأخطاء: E0147
يصلحه:
ا = [1, 2]ب = [1, 2]متساويتان = طول(ا) == طول(ب)لكل ف في مدى(0, طول(ا)): اذا ا[ف] != ب[ف]: متساويتان = خطاءاطبع(متساويتان)تحرير مرتين
رابط إلى قسم «تحرير مرتين»يسببه:
م = جديد(1)حرر(م)حرر(م)رمز الخروج: 3
في فهرس الأخطاء: E0349
يصلحه:
م = جديد(1)حرر(م)اطبع(م == لاشيء)عملية خطرة خارج خطر
رابط إلى قسم «عملية خطرة خارج خطر»يسببه:
م = احجز_خام(عدد, 2)رمز الخروج: 2
في فهرس الأخطاء: E0414
يصلحه:
ش = احجز(عدد, 2)ش[1] = 5اطبع(ش)حرر(ش)