TabError: inconsistent use of tabs and spaces in indentation
आप पायथन प्रोग्राम में कोड को या तो स्पेसेस या टैब्स का उपयोग करके इंडेंट कर सकते हैं। यदि आप कोड के उसी ब्लॉक में दोनों के संयोजन का उपयोग करने का प्रयास करते हैं, तो आपको "TabError: inconsistent use of tabs and spaces in indentation" एरर मिलेगी।
इस गाइड में, हम चर्चा करते हैं कि इस एरर का क्या मतलब है और यह क्यों उठाई जाती है। हम इस एरर के एक उदाहरण के माध्यम से चलेंगे ताकि आप समझ सकें कि इसे अपने कोड में कैसे हल किया जाए।
इंडेंटेशन का महत्व
हालांकि पायथन स्टाइल गाइड कहता है कि पायथन में कोडिंग करते समय स्पेसेस इंडेंटेशन की पसंदीदा मेथड है, आप या तो स्पेसेस या टैब्स का उपयोग कर सकते हैं।
इंडेंटेशन पायथन में महत्वपूर्ण है क्योंकि भाषा यह दर्शाने के लिए कर्ली ब्रेसेस जैसे सिंटैक्स पर निर्भर नहीं करती कि कोड का ब्लॉक कहां शुरू और समाप्त होता है। इंडेंट्स पायथन को बताते हैं कि कोड की कौन सी लाइनें किस कोड ब्लॉक का हिस्सा हैं।
निम्न प्रोग्राम पर विचार करें:
numbers = [8, 7, 9, 8, 7]
def calculate_average_age():
average = sum(numbers) / len(numbers)
print(average)
इंडेंटेशन के बिना, यह जानना असंभव है कि कोड की कौन सी लाइनें calculate_average_age फंक्शन का हिस्सा होनी चाहिए और कौन सी लाइनें मुख्य प्रोग्राम का हिस्सा हैं।
आपको या तो स्पेसेस या टैब्स का उपयोग करने पर टिके रहना चाहिए। टैब्स और स्पेसेस को मिलाएं नहीं। ऐसा करने से पायथन इंटरप्रेटर भ्रमित होगा और "TabError: inconsistent use of tabs and spaces in indentation" एरर होगी।
उदाहरण परिदृश्य
हम एक प्रोग्राम बनाना चाहते हैं जो डोनट स्टोर पर की गई खरीदारी के कुल मूल्य की गणना करता है। शुरू करने के लिए, खरीदारी की लिस्ट परिभाषित करें:
purchases = [2.50, 4.90, 5.60, 2.40]
अगला, हम "purchases" लिस्ट के कुल की गणना करने वाला फंक्शन परिभाषित करने जा रहे हैं:
def calculate_total_purchases(purchases):
total = sum(purchases)
return total
हमारा फंक्शन एक पैरामीटर स्वीकार करता है: खरीदारी की लिस्ट जिसका कुल मूल्य हम गणना करना चाहते हैं। फंक्शन हमारे द्वारा पैरामीटर के रूप में निर्दिष्ट लिस्ट का कुल मूल्य रिटर्न करता है।
हम sum() मेथड का उपयोग "purchases" लिस्ट में नंबर्स के कुल की गणना करने के लिए करते हैं।
यदि आप इस कोड स्निपेट को अपने टेक्स्ट एडिटर में कॉपी करते हैं, तो आप देख सकते हैं कि "return total" कोड लाइन स्पेसेस का उपयोग करके इंडेंटेड है जबकि "total = sum(purchases)" कोड लाइन इंडेंटेशन के लिए टैब्स का उपयोग करती है। यह एक महत्वपूर्ण अंतर है।
अगला, हमारे फंक्शन को कॉल करें और उसके द्वारा रिटर्न किए गए मान को कंसोल पर प्रिंट करें:
total_purchases = calculate_total_purchases(purchases) print(total_purchases)
हमारा कोड डोनट स्टोर पर की गई सभी खरीदारी के कुल मूल्य की गणना करने के लिए calculate_total_purchases() फंक्शन को कॉल करता है। हम फिर उस मान को कंसोल पर प्रिंट करते हैं। आइए अपना कोड चलाएं और देखें क्या होता है:
File "test1.py", line 5
return total
^
TabError: inconsistent use of tabs and spaces in indentation
हमारा कोड एरर रिटर्न करता है।
समाधान
हमने अपने कोड को इंडेंट करने के लिए स्पेसेस और टैब्स का उपयोग किया है। पायथन प्रोग्राम में, आपको इन दो इंडेंटेशन मेथड्स में से किसी एक पर टिके रहना चाहिए।
अपने कोड को ठीक करने के लिए, हम अपने फंक्शन को बदलने जा रहे हैं ताकि हम केवल स्पेसेस का उपयोग करें:
def calculate_total_purchases(purchases):
total = sum(purchases)
return total
हमारा कोड इंडेंटेशन के लिए 4 स्पेसेस का उपयोग करता है। आइए अपने नए इंडेंटेशन के साथ अपना प्रोग्राम चलाएं:
15.4
हमारा प्रोग्राम सफलतापूर्वक डोनट खरीदारी के कुल मूल्य की गणना करता है।
IDLE एडिटर में, आप इन निर्देशों का पालन करके कोड ब्लॉक के लिए इंडेंटेशन हटा सकते हैं:
- उस कोड को चुनें जिसका इंडेंटेशन आप हटाना चाहते हैं
- "Menu" -> "Format" -> "Untabify region" पर क्लिक करें
- वह इंडेंटेशन टाइप डालें जिसे आप उपयोग करना चाहते हैं
यह डॉक्यूमेंट में फॉर्मेटिंग को ठीक करने का एक सुविधाजनक तरीका है, यह मानते हुए कि आप IDLE एडिटर का उपयोग कर रहे हैं। सबलाइम टेक्स्ट जैसे कई अन्य एडिटर्स के पास फाइल में इंडेंटेशन बदलने के अपने तरीके हैं।
निष्कर्ष
पायथन "TabError: inconsistent use of tabs and spaces in indentation" एरर तब उठाई जाती है जब आप कोड को स्पेसेस और टैब्स दोनों का उपयोग करके इंडेंट करने का प्रयास करते हैं।
आप इस एरर को प्रोग्राम में या तो स्पेसेस या टैब्स पर टिके रहकर और किसी भी टैब या स्पेसेस को बदलकर ठीक करते हैं जो आपके पसंदीदा इंडेंटेशन मेथड का उपयोग नहीं करते। अब आपके पास इस एरर को एक प्रोफेशनल प्रोग्रामर की तरह ठीक करने का ज्ञान है!