Home › Hindi › IndentationError Hindi में

Python IndentationError Hindi में — space की galti का पूरा इलाज

🌐 यह page Hindi में है · Read this in English →

expected an indented blockunexpected indentTabs vs spaces का झगड़ा

Python में space का मतलब होता है

दूसरी languages में block { } से बनते हैं। Python में block indentation यानी शुरू की खाली जगह से बनता है। इसीलिए space idhar-udhar होते ही code टूट जाता है।

if marks > 40:
print("Pass")

IndentationError: expected an indented block after 'if' statement on line 1

Python कह रहा है: "colon लगाकर तुमने block शुरू किया था, पर अंदर कुछ indented मिला ही नहीं।"

if marks > 40:
    print("Pass")     # ✅ 4 spaces अंदर

तीनों messages का मतलब

1. expected an indented block — if, for, while, def, class, try के बाद अंदर वाली line indent नहीं है। अगर सच में अभी कुछ नहीं लिखना, तो pass रख दो:

def todo_later():
    pass

2. unexpected indent — line बिना वजह अंदर खिसकी है, जबकि ऊपर वाली line ने कोई block खोला ही नहीं था।

naam = "Priya"
    print(naam)      # ❌ unexpected indent — इसे indent की ज़रूरत नहीं

3. unindent does not match any outer indentation level — line बाहर तो आई, पर किसी भी चल रहे level से मेल नहीं खाती। यह लगभग हमेशा tabs और spaces मिलाने से होता है।

असली मुजरिम: tabs और spaces का mix

Tab और 4 spaces screen पर बिल्कुल एक जैसे दिखते हैं, पर Python के लिए अलग-अलग हैं। Copy-paste (Stack Overflow, WhatsApp, PDF, blog) से यह mix सबसे ज़्यादा आता है, और यही TabError: inconsistent use of tabs and spaces in indentation देता है।

पक्का fix — एक बार editor set कर लो:

Nested blocks में levels गिनना

for student in students:          # level 0
    if student["marks"] > 40:     # level 1 (4 spaces)
        print("Pass")             # level 2 (8 spaces)
    else:                         # level 1 — if के साथ बराबर
        print("Fail")             # level 2
print("Done")                     # level 0 — loop के बाहर

सबसे बड़ी galti: आखिरी line को गलती से loop के अंदर छोड़ देना। तब "Done" हर student पर छपेगा — यह crash नहीं करता, बस output गलत आता है। इसीलिए indentation Python में सिर्फ style नहीं, logic है।

IndentationError vs SyntaxError

IndentationError असल में SyntaxError का ही एक खास type है — दोनों code चलने से पहले पकड़े जाते हैं। फर्क बस इतना है कि IndentationError साफ-साफ बता देता है कि galti spaces की है, जबकि सादा SyntaxError: invalid syntax अक्सर colon, bracket या quote की कमी की वजह से आता है।

Debug करने का सबसे तेज़ तरीका: error में जो line number है उससे एक line ऊपर भी देखो — अधूरा bracket ऊपर हो तो error नीचे दिखता है।

🛠️ Practice करो (free, browser में)

पढ़ना काफी नहीं — यही bug खुद fix करके देखो। नीचे के problems browser में ही चलते हैं, कोई install नहीं, कोई login नहीं।

सारे free problems देखो →

अक्सर पूछे जाने वाले सवाल

IndentationError: expected an indented block का मतलब क्या है?

इसका मतलब है कि आपने if, for, while, def या try लिखकर colon लगाया, पर उसके नीचे वाली line को अंदर (indent) नहीं किया। अगले line को 4 spaces अंदर करें, या अभी कुछ नहीं लिखना तो pass लिख दें।

Python में tab और spaces मिलाने पर क्या होता है?

TabError: inconsistent use of tabs and spaces in indentation आता है, क्योंकि दिखने में एक जैसे होने के बावजूद Python के लिए tab और spaces अलग हैं। editor में 'Convert Indentation to Spaces' चलाकर पूरी file 4 spaces पर ले आएँ।

Python में कितने spaces का indent सही है?

PEP 8 के मुताबिक 4 spaces। सबसे ज़रूरी बात consistency है — पूरी file में एक ही तरीका रखें और tab कभी न मिलाएँ।

unexpected indent क्यों आता है?

जब कोई line बिना किसी block के अंदर खिसक जाए — यानी उससे ऊपर वाली line colon के साथ खत्म नहीं हुई थी। उस line की शुरुआत के extra spaces हटा दें।

आगे पढ़ो