पायथन एक उभरती हुई प्रोग्रामिंग भाषा है जिसे पहली बार 1991 में जारी किया गया था। यह भाषा अपने बड़े व्यापक पुस्तकालय के लिए जानी जाती है और कार्यात्मक, अनिवार्य, प्रक्रियात्मक और ऑब्जेक्ट-ओरिएंटेड जैसे कई प्रोग्रामिंग प्रतिमानों का समर्थन करती है।
'इंडेंटेशन एरर: एक इंडेंटेड ब्लॉक अपेक्षित' सभी प्रकार के उपयोगकर्ताओं के लिए होता है; चाहे वे नौसिखिए हों या अनुभवी। चूंकि पायथन अपने सभी कोड को सही व्हाइटस्पेस द्वारा व्यवस्थित करता है, यदि आपके पास खराब इंडेंटेशन है, तो कोड कंपाइल नहीं होगा और आपको एक त्रुटि संदेश वापस मिलेगा।
PEP8 में अपनाए गए कन्वेंशन के अनुसार, जहां आवश्यक हो वहां चार व्हाइटस्पेस होने चाहिए। हर प्रोग्रामर के लिए उचित इंडेंटेशन का उपयोग करना आदर्श है ताकि कोड पठनीयता में सुधार हो।
पायथन में इंडेंटेशन त्रुटि के कारण
जैसा कि पहले उल्लेख किया गया है, यह त्रुटि मुख्य रूप से तब होती है जब आपके कोड में स्पेस या टैब त्रुटियां होती हैं। चूंकि पायथन प्रक्रियात्मक भाषा का उपयोग करता है, यदि आपने टैब/स्पेस को सही ढंग से नहीं रखा है तो आप इस त्रुटि का अनुभव कर सकते हैं। प्रोग्राम ठीक से चल सकता है लेकिन यदि इंटरप्रेटर को यह त्रुटि मिलती है, तो त्रुटि संदेश बीच में सामने आ जाएगा। त्रुटि के कुछ कारण हैं:
- आप अपने कोड में स्पेस और टैब दोनों का उपयोग कर रहे हैं। यदि दोनों का परस्पर उपयोग किया जाता है, तो इंटरप्रेटर यह निर्धारित नहीं कर पाएगा कि किस आइटम का उपयोग करना है।
- आपने कुछ इंडेंट गलत रखे हैं। यदि इंडेंटेशन अभ्यास का पालन नहीं किया जाता है, तो आपको यह त्रुटि अनिवार्य रूप से होगी।
- आप कंपाउंड स्टेटमेंट्स जैसे 'if', 'for', 'while' आदि को इंडेंट करना भूल गए।
- आप उपयोगकर्ता-परिभाषित फ़ंक्शंस या क्लासेस को इंडेंट करना भूल गए।
समाधान 1: गलत व्हाइटस्पेस/टैब की जांच करना
इस मुद्दे का कोई त्वरित समाधान नहीं है। चूंकि कोड आपका है, आपको प्रत्येक पंक्ति से गुजरना होगा और देखना होगा कि आपने कहां गलती की। कोड में संरचना के संबंध में कई ब्लॉक हैं। यदि 'इफ' स्टेटमेंट है, तो उसके बाद आने वाले कोड में इंडेंटेशन होना चाहिए।
ऊपर दिए गए आरेख को देखें। देखें कि एक विशिष्ट ब्लॉक के लिए इंडेंटेशन कोड के पूरे भाग में समान रहता है भले ही बीच में एक नया ब्लॉक पेश किया गया हो। सुनिश्चित करें कि आपका इंडेंटेशन सुसंगत है। यदि आप स्पेस का उपयोग कर रहे हैं, तो हमेशा स्पेस का उपयोग करें और यदि आप टैब का उपयोग कर रहे हैं, तो हमेशा टैब का उपयोग करें। दोनों का मिश्रण समस्या पैदा करेगा।
ऊपर दिए गए उदाहरण में सही इंडेंटेशन दिखाया गया है। शुरुआत के लिए 'फॉर' लूप देखें। 'फॉर' लूप के अंदर सब कुछ इंडेंटेड होना चाहिए। 'फॉर' लूप के अंदर, हमारे पास एक 'इफ' स्टेटमेंट है। 'इफ' स्टेटमेंट के अंदर, सब कुछ आगे इंडेंटेड होना चाहिए।
आप त्रुटि लॉग की जांच करके और उस लाइन को देखकर आसानी से जांच सकते हैं जहां इंडेंटेशन त्रुटि हुई थी जहां से त्रुटि उत्पन्न हुई थी।
समाधान 2: एडिटर में टैब/स्पेस प्रतीकों को सक्षम करना
यदि आप सभी प्रोग्रामर्स की तरह 'अनुमान' से अपने कोड को इंडेंट करने में कठिनाई महसूस कर रहे हैं, तो आप अपने IDE या कोड एडिटर में टैब/स्पेस के प्रतीकों को सक्षम कर सकते हैं। यह विकल्प आपके कोड में छोटे 'डॉट्स' को सक्षम करेगा जहां प्रत्येक डॉट एक स्पेस या टैब का प्रतिनिधित्व करता है। आप इसका उपयोग कोड को अधिक उचित तरीके से इंडेंट करने और यह सुनिश्चित करने के लिए कर सकते हैं कि कोई अतिरिक्त इंडेंट नहीं है या कुछ गायब नहीं है।
इस उदाहरण में, हम नोटपैड++ लेंगे और देखेंगे कि आप प्रतीकों को कैसे सक्षम कर सकते हैं। यदि आप कोड संपादन के लिए किसी अन्य सॉफ्टवेयर का उपयोग कर रहे हैं, तो आप उसके लिए विशिष्ट सेटिंग सक्षम कर सकते हैं।
- व्यू > शो सिंबल > शो व्हाइटस्पेस और TAB दबाएं

- अब विकल्प सक्षम है। आप इंडेंट गाइड को भी सक्षम कर सकते हैं ताकि चीजें आपके लिए आसान हो जाएं।
ऊपर दिए गए उदाहरण को देखें। प्रत्येक क्लास के बाद लागू इंडेंटेशन देखें। प्रत्येक स्पेस को एक डॉट द्वारा दर्शाया गया है। अपने कोड पर गलत इंडेंटेशन में परिवर्तन करने के बाद, इसे फिर से चलाएं और देखें कि क्या यह समस्या हल करता है।