2011-12-26 13 views
26

यहां मेरा कोड है ... मुझे इंडेंटेशन त्रुटि मिल रही है लेकिन मुझे नहीं पता कि यह क्यों होता है।पायथन इंडेंटेशन त्रुटि: अप्रत्याशित इंडेंट

->

# loop 
while d <= end_date: 
    # print d.strftime("%Y%m%d") 
    fecha = d.strftime("%Y%m%d") 
    # set url 
    url = 'http://www.wpemergencia.omie.es//datosPub/marginalpdbc/marginalpdbc_' + fecha + '.1' 
    # Descargamos fichero 
    response = urllib2.urlopen(url) 
    # Abrimos fichero 
    output = open(fname,'wb') 
    # Escribimos fichero 
    output.write(response.read()) 
    # Cerramos y guardamos fichero 
    output.close() 
    # fecha++ 
    d += delta 
+5

टैब और रिक्त स्थान का मिश्रण? – taskinoor

+0

कोई 'इंडेंटेशन इरर यहाँ नहीं है'। 'D' और' end_date' की परिभाषाओं के साथ, यह आपके कोड में कहीं और होना चाहिए। कृपया एक [एसएससीसीई] (http://sscce.org/) प्रदान करें। – Johnsyweb

+2

किसी भी अर्ध-सभ्य संपादक के पास किसी भी तरह से रिक्त स्थान और टैब को दृष्टि से दिखाने का विकल्प होता है। उसका उपयोग करें। – sbk

उत्तर

43

python -t script.py 

यह आपको चेतावनी देगा अगर आप मिश्रित टैब और रिक्त स्थान के साथ अपने कार्यक्रम चलाएं।

* nix सिस्टम पर, आप जहां टैब

cat -A script.py 

चलाकर देख सकते हैं और आप स्वचालित रूप से आदेश

expand -t 4 script.py > fixed_script.py 

पी एस के साथ 4 रिक्त स्थान के लिए टैब में बदल सकते हैं। एक प्रोग्रामिंग संपादक (उदाहरण के लिए emacs, vim), प्रोग्रामिंग के दौरान, वर्ड प्रोसेसर नहीं, का उपयोग करना सुनिश्चित करें। आपको प्रोग्रामिंग संपादक के साथ यह समस्या नहीं मिलेगी।

पीपीएस। Emacs उपयोगकर्ताओं के लिए, एम-एक्सwhitespace-mode एक emacs बफर के भीतर से cat -A के समान जानकारी दिखाएगा!

+0

नहीं कि unutbu उसके उत्तर में पूरा नहीं हुआ है, मेरे पास एक ही समस्या थी और बिल्ली-ए script.py का उपयोग करने पर आप तुरंत लापता इंडेंटेशन देख सकते हैं। भले ही आप कॉपी और पेस्ट करें और यह आपके संपादक में इंडेंटेशन जैसा दिखता हो। वास्तव में यह नहीं है, इसलिए सावधान रहें। –

7

चेक आप मिश्रित टैब और रिक्त स्थान, कि खरोज त्रुटियों की एक लगातार स्रोत है अगर।

3

आप पहचान के लिए टैब और रिक्त स्थान मिश्रण नहीं कर सकते। सर्वोत्तम अभ्यास सभी टैब को रिक्त स्थान में कनवर्ट करना है।

इसे कैसे ठीक करें? ठीक है बस प्रत्येक पंक्ति से पहले सभी रिक्त स्थान/टैब हटाएं और उन्हें समान रूप से टैब या रिक्त स्थान पर रूपांतरित करें, लेकिन मिश्रण न करें। सबसे अच्छा समाधान: अपने संपादक में स्वचालित रूप से किसी भी टैब को रिक्त स्थानांतरित करने का विकल्प सक्षम करें।

यह भी ध्यान रखें कि आपकी वास्तविक समस्या इस ब्लॉक से पहले लाइनों में झूठ बोल सकती है, और पाइथन यहां एक प्रमुख अमान्य इंडेंटेशन की वजह से त्रुटि को फेंकता है, जो निम्न पहचानों से मेल नहीं खाता है!

7

सभी टैब ढूंढें और नोटपैड ++ में 4 रिक्त स्थानों द्वारा प्रतिस्थापित किया गया। यह काम किया।

+0

मूल प्रश्न पोस्ट किए जाने के साढ़े सालों बाद, आपको वास्तव में सुझाव देने के लिए कुछ भी नया नहीं मिला। एसओ में आपका स्वागत है और कृपया, अपना खुद का पोस्ट करने से पहले पिछले उत्तरों को पढ़ें। पहले से मौजूद उत्तरों को दोहराएं मत। – Wh1T3h4Ck5

0

आप अपनी स्क्रिप्ट कॉपी और "" अपने पूरे कोड "" "के तहत" डाल ...

एक चर .. की तरह में इस लाइन निर्दिष्ट करते हैं,

a = """ your entire code """ 
print a.replace(' ',' ') # first 4 spaces tab second four space from space bar 

print a.replace('here please press tab button it will insert some space"," here simply press space bar four times") 
# here we replacing tab space by four char space as per pep 8 style guide.. 

अब इस कोड को निष्पादित, में ctrl + b का उपयोग कर उत्कृष्टता, अब यह कंसोल में इंडेंट कोड मुद्रित करेगा। यह है

संबंधित मुद्दे