कई बार एक प्रोग्राम में एक से अधिक स्टेटमेंट को ब्लॉक के रूप में ट्रीट करना आवश्यक होता है। विभिन्न प्रोग्रामिंग भाषाएं क्लास, फ़ंक्शन, कंडीशनल और लूप जैसे कंस्ट्रक्ट में स्टेटमेंट के ब्लॉक के स्कोप और एक्सटेंट को परिभाषित करने के लिए विभिन्न तकनीकों का उपयोग करती हैं। C और C++ में, उदाहरण के लिए, कर्ली ब्रैकेट्स के अंदर के स्टेटमेंट को ब्लॉक के रूप में ट्रीट किया जाता है। पायथन ब्लॉक के स्टेटमेंट को चिह्नित करने के लिए यूनिफॉर्म इंडेंटेशन का उपयोग करता है।
पायथन इंडेंटेशन नियम
- ब्लॉक की शुरुआत से पहले प्रतीक `:` का उपयोग किया जाता है
- ब्लॉक में पहला और बाद के स्टेटमेंट अतिरिक्त (लेकिन यूनिफॉर्म) व्हाइटस्पेस छोड़कर लिखे जाते हैं (जिसे इंडेंट कहा जाता है)
- ब्लॉक के अंत को संकेत देने के लिए, व्हाइटस्पेस को डिडेंट (कम) किया जाता है
उदाहरण
num = int(input("enter number"))
if num % 2 == 0:
if num % 3 == 0:
print("Divisible by 3 and 2")
else:
print("divisible by 2 not divisible by 3")
else:
if num % 3 == 0:
print("divisible by 3 not divisible by 2")
else:
print("not Divisible by 2 not divisible by 3")
महत्वपूर्ण नियम
यह सुनिश्चित करना महत्वपूर्ण है कि किसी विशेष स्तर पर ब्लॉक में सभी स्टेटमेंट का इंडेंटेशन समान होना चाहिए।
इंडेंटेशन सर्वोत्तम अभ्यास
1. 4 स्पेस उपयोग करें (PEP 8)
# अच्छा
if condition:
do_something()
do_another()
# बुरा - टैब मिश्रित
if condition:
do_something() # टैब
do_another() # स्पेस
2. टैब और स्पेस मिश्रित न करें
# पायथन 3 टैब/स्पेस मिश्रण पर TabError उठाता है
# पायथन 2 चेतावनी देता था लेकिन अनुमति देता था
3. सुसंगत रहें
# क्लास/फ़ंक्शन परिभाषा
class MyClass:
def method(self):
if True:
for item in items:
process(item)
क्यों इंडेंटेशन-आधारित?
- पठनीयता: कोड संरचना दृश्य रूप से स्पष्ट होती है
- संगति: एक शैली लागू करता है
- कम बॉयलरप्लेट: ब्रेसेस `{}` या `begin`/`end` कीवर्ड नहीं
- कम मर्ज संघर्ष: ब्रेसेस शैली संघर्ष से बचाता है
सामान्य त्रुटियां
| त्रुटि | कारण | समाधान |
|---|---|---|
| IndentationError | अपेक्षित इंडेंट नहीं | ब्लॉक के बाद इंडेंट जोड़ें |
| Unindent does not match | असंगत डिडेंट | मिलान करने वाले स्तर पर संरेखित करें |
| TabError | टैब/स्पेस मिश्रित | सभी को स्पेस में बदलें |
| तार्किक बग | गलत इंडेंट स्तर | कोड संरचना की समीक्षा करें |
टूल्स
python -m tabnanny file.py- इंडेंटेशन समस्याएं जांचेंautopep8/black- स्वचालित फॉर्मेटिंग- IDE: स्वचालित इंडेंटेशन, दृश्य इंडेंट गाइड