خطأ المسافة البادئة في بايثون: الأسباب ، كيفية الحل ، الفوائد
نشرت: 2021-05-26باعتبارها لغة برمجة مفسرة وعالية المستوى وذات أغراض عامة ، تحظى Python بشكل متزايد بالتقدير باعتبارها أكثر الأنظمة الأساسية الواعدة والرائدة والناشئة في عالم البرمجة. بايثون لا شيء بدون فلسفة التصميم المبتكرة.
السمة الرئيسية هي التركيز الموجه إلى الاستخدام الملحوظ للمسافة البادئة الكبيرة لتعزيز قابلية قراءة الكود. يوضح الرسم التوضيحي الموضح أدناه بإيجاز حصون فلسفة تصميم بايثون على شكل عشرين حكمة ، لمح إليها تيم بيترز ، بايثونير طويل المدى ، والذي أصبح في النهاية أحد أكثر مطوري بايثون الأساسيين ثباتًا وثباتًا.
جدول المحتويات
مقدمة موجزة لبايثون
قبل الخوض في الجوانب الفنية المحددة الكامنة وراء خطأ المسافة البادئة في بايثون ، يجب أن نتعرف على أساسيات بايثون والحاجة إلى المسافة البادئة. لن يساعدك القيام بذلك على اكتساب تقدير أفضل للخطأ نفسه فحسب ، بل سيوفر لك نظرة ثاقبة على المزايا التي يكتسبها المبرمجون من خلال اختيار حل المشكلة بشكل فعال.
يمكن إرجاع بداية لغة Python كلغة برمجة متعددة النماذج إلى عام 1991. ومنذ ذلك الحين ، قام المبرمجون باستمرار بتكييف الإطار السلكي الأساسي لـ Python ليناسب مجموعة من الاحتياجات الخاصة بالمستخدم ، مثل علم البيانات وتطوير الويب والهاتف المحمول.
الآن ، نعلم جميعًا أن محاولة فهم خط اليد غير المقروء أمر صعب ومثير للغضب في كثير من الأحيان. وبالمثل ، فإن الكود غير المقروء وغير المهيكل سهل وبسيط وغير مقبول في عالم البرمجة. هذا هو المكان الذي يأتي فيه مفهوم PEP أو اقتراح تحسين Python لإنقاذ المبرمج. يعد PEP إلى Python Community أقرب إلى مستند Google مشترك لعامة الناس.
إنه تفويض وصفي يتم تحديثه باستمرار والذي يبقي مجتمع برمجة Python على اطلاع شامل بالميزات والتحديثات لتحسين قابلية قراءة الكود. بواسطة Guido van Rossum و Barry Warsaw و Nick Coghlan في عام 2001 ، تمت الإشارة إلى PEP 8 باسم رمز أسلوب Python.
ما هي المسافة البادئة؟
من المعروف في المقام الأول أن لغة بايثون هي لغة إجرائية ، وبالتالي ، يتم استخدام المسافة البادئة في بايثون لفصل كود واحد إلى مجموعات يمكن التعرف عليها من عبارات مماثلة وظيفيًا. تستخدم غالبية لغات البرمجة ، بما في ذلك C و C ++ و JAVA ، الأقواس المتعرجة "{}" لتحديد كتلة التعليمات البرمجية. تمثل Python انحرافًا عن هذا التصميم وتفضل استخدام المسافة البادئة.
النحو من المسافة البادئة
وفقًا للاتفاقيات التي حددتها أخلاقيات المسافات البيضاء PEP 8 ، يجب أن يبدأ كل تكرار جديد (أي كتلة من التعليمات البرمجية) بمسافة بادئة ، ويجب أن تكون نهاية الكود هي السطر الأول الذي لم يتم وضع مسافة بادئة له. الممارسة الشائعة لتنفيذ المسافة البادئة هي أربع مسافات بيضاء أو حرف جدولة واحد ، مع تفضيل المناطق إلى حد كبير على علامات التبويب.
كما تمت مناقشته سابقًا ، تحدد المسافات البادئة في بداية السطر مستوى المسافة البادئة للخط. لتجميع العبارات الخاصة بكتلة تعليمات برمجية معينة ، سيتعين عليك زيادة مستوى المسافة البادئة. وبالمثل ، لإغلاق التجميع ، سيتعين عليك تقليل مستوى المسافة البادئة.
تسجيل الخروج: 42 موضوعات وأفكارًا مثيرة حول مشروع Python
أسباب خطأ المسافة البادئة في بايثون
لا يميز "خطأ المسافة البادئة: كتلة متوقعة ذات مسافة بادئة" بين المستخدمين. سواء كنت مبتدئًا في برمجة Python أو مطور برامج متمرسًا ، فلا بد أن يحدث هذا في وقت ما. في Python ، نظرًا لأن جميع الكود الذي تكتبه يتم ترتيبها عبر مسافات بيضاء صحيحة ، إذا كان لديك مسافة بادئة غير صحيحة في أي حالة في الكود ، والكود الإجمالي بدون تشغيل ، وسيرجع المترجم وظيفة خطأ. لمعرفة بالضبط ما يجب الانتباه إليه ، يسرد ما يلي بعض الأسباب الشائعة لخطأ المسافة البادئة في Python:
1. الاستخدام المتزامن لعلامات التبويب والمسافات أثناء الترميز. يمكن القول أنه من الناحية النظرية ، تخدم كل من علامات التبويب والمسافات نفس الغرض ، ولكن دعونا نفكر في ذلك من منظور المترجم الفوري. إذا تم استخدام المسافات البيضاء وعلامات التبويب بشكل غير متسق ومتبادل ، فإنه يخلق الغموض. سيؤدي ذلك إلى إرباك المترجم الفوري بين التغيير الذي يجب استخدامه وإرجاع خطأ المسافة البادئة في بيثون في النهاية.
2. لقد قمت عن غير قصد بوضع مسافة بادئة في المكان الخطأ أو عدم وجود علامات تبويب أو مسافات بيضاء بين أسطر التعليمات البرمجية. نظرًا لأن Python تلتزم بإرشادات صارمة لترتيب الأكواد المكتوبة ، فإن المسافة البادئة في المكان الخطأ ستعيد حتماً خطأ. على سبيل المثال ، لا يجب وضع مسافة بادئة للسطر الأول من لغة بايثون.
3. في بعض الأحيان ، أثناء الانتهاء من برنامج متأخر ، طويل بشكل استثنائي ، قد تفوتك عن غير قصد وضع مسافة بادئة لوظائف العبارات المركبة مثل for و while و if. سيؤدي هذا مرة أخرى إلى خطأ المسافة البادئة. هذه هي الحاجة الأساسية للمسافة البادئة عند استخدام Python وتحتاج إلى التدرب عليها بصرامة لإتقانها.
4. إذا نسيت استخدام المسافة البادئة عند العمل مع وظائف محددة بواسطة المستخدم أو فئات مختلفة ، فمن المحتمل أن يظهر خطأ.
كيفية حل خطأ المسافة البادئة في بايثون؟
1. تحقق من عدم وجود مسافات بيضاء أو علامات تبويب خاطئة. لسوء الحظ ، لا يوجد حل سريع لخطأ المسافة البادئة. نظرًا لأن الشفرة ملكك ، تظل الحقيقة أنه سيتعين عليك تقييم كل سطر لتحديد الحالات الخاطئة على حدة. ومع ذلك ، نظرًا لأن سطور التعليمات البرمجية مرتبة في كتل ، فإن العملية بسيطة نسبيًا. على سبيل المثال ، إذا كنت قد استخدمت عبارة "if" في تسلسل معين ، فيمكنك التحقق مما إذا كنت قد تذكرت وضع مسافة بادئة للسطر التالي.
2. تأكد من أن المسافة البادئة لكتلة معينة تظل كما هي في جميع أنحاء الكود ، حتى إذا تم إدخال كتلة جديدة في المنتصف. تحقق من عدم الاتساق في المسافة البادئة.
إذا لم تنجح الحلول اليدوية المذكورة أعلاه من أجلك ، وتواجه صعوبة في معرفة المكان الذي فاتتك فيه المسافة البادئة ، فاتبع الخطوات التالية:
3. انتقل إلى إعدادات محرر التعليمات البرمجية الخاصة بك وقم بتمكين الخيار الذي يسعى إلى عرض علامات التبويب والمسافات البيضاء. عند تمكين هذه الميزة ، سترى نقاطًا صغيرة مفردة ، حيث تمثل كل نقطة علامة تبويب / مسافة بيضاء. إذا لاحظت أن هناك قطرة مفقودة في المكان الذي لا ينبغي أن تكون فيه ، فمن المحتمل أن هذا السطر به خطأ مسافة بادئة.
4. استخدم دليل المسافة البادئة المدمج لمترجم بايثون. يمكن القول أن هذه الطريقة غير فعالة للغاية للعديد من أسطر الكود. ومع ذلك ، نظرًا لأنه يأخذك عبر كل سطر ويظهر لك بالضبط أين يكمن خطأك ، فهي الطريقة الأضمن للعثور على جميع الأخطاء وإصلاحها.
اقرأ أيضًا: أفضل 12 تطبيقًا رائعًا للبايثون في العالم الحقيقي
فوائد المسافة البادئة
سهولة القراءة والاتساق ضروريان لأي كود جيد. بعد المسافة البيضاء PEP 8 ، يجب أن تكون الأخلاق غير قابلة للتفاوض. إنه يثبت منطقيًا التعليمات البرمجية الخاصة بك ، وبالتالي يساهم في تجربة تشفير أكثر متعة. بالإضافة إلى ذلك ، إذا اتبعت هذا التوجيه الأسلوبي حيث تكون قابلية القراءة هي الأمر الواقع ، فسيفهم الأشخاص غير المعروفين لك ، ولكنهم مهتمون بعملك ، الكود الخاص بك بسهولة.
مساوئ المسافة البادئة
- إذا كانت الشفرة كبيرة وكانت المسافة البادئة تالفة ، فقد يكون إصلاح أخطاء المسافة البادئة مملاً. يحدث هذا عادةً عندما يتم نسخ رمز من مصدر عبر الإنترنت أو مستند Word أو ملف PDF.
- تستخدم لغات البرمجة الشائعة عادةً الأقواس للمسافة البادئة. بالنسبة للمبرمجين الذين بدأوا للتو في استخدام Python ، قد يكون التكيف مع فكرة استخدام المسافات البادئة للمسافات البادئة أمرًا صعبًا.
تلخيص لما سبق
كل ما يقع بينك وبين الكود المكتوب جيدًا هو المسافة البادئة ، وكل ما يقع بينك وبين الكود المكتوب جيدًا والتنفيذ السلس هو خطأ مسافة بادئة. الآن ، كل البشر يرتكبون أخطاء. جميع المبرمجين بشر. لذلك ، يرتكب جميع المبرمجين أخطاء. ولكن يمكن حل خطأ المسافة البادئة بسهولة. كل ما عليك فعله هو التنفس والاستمتاع بالمساحة الخاصة بك.
آمل أن تتعلم الكثير أثناء العمل في مشاريع Python هذه. إذا كنت مهتمًا بتعلم علوم البيانات لتكون أمام التطورات التكنولوجية السريعة ، فراجع برنامج upGrad & IIIT-B التنفيذي في علوم البيانات واكتسب مهارات المستقبل.
تحدد Python متى تبدأ كتل التعليمات البرمجية وتتوقف من خلال النظر إلى المسافة في بداية السطر. قد تواجه أخطاء المسافة البادئة التالية: علامات التبويب والمسافات هما حرفان منفصلان يظهران على الشاشة كمسافات بيضاء. تكمن المشكلة في عدم وجود إجماع حول الحجم الذي يجب أن يكون عليه حرف الجدولة ، وبالتالي يعرضه بعض المحررين على أنه يشغل 8 مسافات ، والبعض الآخر 4 مسافات ، والبعض الآخر مسافات 2 ، كما أنه قابل للتخصيص. حدد الكود الخاص بك واضغط على Tab أو Shift + Tab لعمل مسافة بادئة أو إلغاء مسافة بادئة لها. يمكن العثور على أدوات أخرى لتغيير التعليمات البرمجية الخاصة بك في قسم التحرير.ما الأخطاء التي يمكنني الحصول عليها بسبب المسافة البادئة في Python؟
1. مسافة بادئة غير متوقعة - يحتوي هذا السطر من التعليمات البرمجية على مسافات في البداية أكثر من التي قبلها ، ولكن السطر الذي يسبقه لا يبدأ كتلة فرعية. في الكتلة ، يجب أن تبدأ جميع أسطر التعليمات البرمجية بنفس سلسلة المسافات البيضاء.
2. لا يتوافق Unindent مع أي من مستويات المسافة البادئة الخارجية - يحتوي هذا السطر من التعليمات البرمجية على مسافات أقل في البداية من السطر السابق ، ولكنه أيضًا لا يتطابق مع أي كتلة أخرى.
3. كان من المتوقع وجود فدرة ذات مسافة بادئة - يبدأ سطر الكود هذا بنفس عدد المسافات مثل السطر السابق ، ومع ذلك كان من المفترض أن يبدأ السطر السابق فدرة (على سبيل المثال ، if / while / for statement ، تعريف الوظيفة). كيف يمكنك إصلاح علامات التبويب والمسافات غير المتناسقة في المسافة البادئة Spyder؟
عندما تقوم بتشفير ولكن سطر واحد مع مسافة بادئة بعلامة تبويب والآخر به مسافات ، فإن Python تلقي خطأ ، على الرغم من حقيقة أنها تبدو جيدة في المحرر (لكنها لن تبدو جيدة إذا قمت بمضاعفة عرض علامة تبويب ؛ الآن سيتم وضع مسافة بادئة بين سطور الجدولة مستويين).
لتجنب هذه المشكلة ، انتقل إلى خيارات محرر النصوص الخاص بك وقم بتمكين ميزة تحويل علامات التبويب إلى مسافات ، والتي تستبدل حرف الجدولة بأحرف n مسافة ، حيث يمثل n عرض علامة التبويب الذي يستخدمه المحرر. كيف تظهر المسافات البادئة على سبايدر؟