python
  • indentation
  • 2011-12-26 16 views 26 likes 
    26

    ここに私のコードです...インデントエラーが発生していますが、なぜそれが発生するのかわかりません。Python IndentationError:予期しないインデント

    - >

    # 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

    'IndentationError here'はありません。 'd'と' end_date'の定義とともに、あなたのコードのどこかになければなりません。 [SSCCE](http://sscce.org/)を入力してください。 – Johnsyweb

    +2

    半角のエディタでは、スペースやタブを視覚的に表示するオプションがあります。それを使用してください。 – sbk

    答えて

    43

    は、あなたが混合タブとスペースを持っている場合、これはあなたに警告します

    python -t script.py 
    

    を使用してプログラムを実行します。タブは

    cat -A script.py 
    

    を実行しているここで、* nixのシステムで

    は、あなたが見ることができますし、自動的にコマンド

    expand -t 4 script.py > fixed_script.py 
    

    PSと4つのスペースにタブを変換することができます。プログラミング時には、ワードプロセッサではなく、プログラミングエディタ(emacs、vimなど)を使用してください。プログラミングエディタでこの問題が発生することはありません。

    PPS。 emacsユーザーの場合、M-xwhitespace-modeは、emacsバッファー内のcat -Aと同じ情報を表示します!

    +0

    彼の答えでは、unutbuが完全ではないというわけではありませんが、同じ問題がありました。cat -A script.pyを使用すると、欠落しているインデントをすぐに見ることができます。コピーして貼り付けても、エディタで字下げのように見えることがあります。実際にはそうではないので、注意してください。 –

    7

    チェックあなた混合タブとスペースであれば、それはインデントエラーの頻繁なソースです。

    3

    識別のためにタブとスペースを混在させることはできません。すべてのタブをスペースに変換することをお勧めします。

    これを修正するにはどうすればよいですか?まあ、各行の前にすべてのスペース/タブを削除し、タブまたはスペースのいずれかに一様に変換しますが、混在させないでください。最適なソリューション:エディタで、任意のタブを自動的にスペースに変換するオプションを有効にします。

    実際の問題はこのブロックの前の行にある可能性があり、次のような一致しないインデントのため、ここではエラーが発生します。

    7

    すべてのタブを見つけ、notepad ++で4つのスペースに置き換えました。

    +0

    オリジナルの質問が投稿されてから1年半後に、あなたは実際には新しいものを見つけることができませんでした。ようこそ、あなたにあなた自身を投稿する前に、前の答えをお読みください。すでに存在する答えを繰り返さないでください。 – 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を使用して昇華すると、インデントされたコードがコンソールに表示されるようになりました。それはそれです

    関連する問題