Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में इंडेंटेशन (इंडेंट) क्यों महत्वपूर्ण है?

कई बार एक प्रोग्राम में एक से अधिक स्टेटमेंट को ब्लॉक के रूप में ट्रीट करना आवश्यक होता है। विभिन्न प्रोग्रामिंग भाषाएं क्लास, फ़ंक्शन, कंडीशनल और लूप जैसे कंस्ट्रक्ट में स्टेटमेंट के ब्लॉक के स्कोप और एक्सटेंट को परिभाषित करने के लिए विभिन्न तकनीकों का उपयोग करती हैं। 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: स्वचालित इंडेंटेशन, दृश्य इंडेंट गाइड
  1. Ghidra क्या है और यह महत्वपूर्ण क्यों है? Ghidra क्या है और यह महत्वपूर्ण क्यों है?

    नए वायरस से निपटने का एक बड़ा हिस्सा यह पता लगाना है कि वे कैसे काम करते हैं। ऐसा करने के लिए, आपको इसे रिवर्स-इंजीनियर करने की आवश्यकता है। राष्ट्रीय सुरक्षा एजेंसी (NSA) को जाहिर तौर पर इस तरह का काम बहुत करना पड़ता है, इसलिए उन्होंने अपना खुद का टूल बनाया, जिसे Ghidra कहा जाता है, ताकि उन्हें ऐसा

  1. - Python में if...else स्टेटमेंट को इंडेंट कैसे करें?

    Python की एक प्रमुख विशेषता है ब्लॉक को दर्शाने के लिए समान इंडेंटेशन का उपयोग। एक ब्लॉक `:` सिंबल से शुरू होता है। जैसे ही `:` टाइप करके एंटर दबाया जाता है, कोई भी Python-सक्षम एडिटर कर्सर को अगली लाइन पर बढ़े हुए इंडेंट के साथ ले जाता है। उसके बाद लिखी गई सभी लाइनें उसी स्तर के इंडेंट का पालन करत

  1. - Python के if क्लॉज से कैसे बाहर निकलें?

    Python कोड के `if` ब्लॉक से बाहर निकलना संभव नहीं है। `break` कीवर्ड `if` ब्लॉक में दिखाई देता है लेकिन यह लूप के अंदर होना चाहिए। हालांकि, `if` ब्लॉक के अंदर से `sys.exit()` का उपयोग करके पूरे प्रोग्राम से बाहर निकलना संभव है।