0

私はPythonを初めて使用します。ここで演習を行っています( http://www.learnpython.org/page/Loops )。次のコードの場合:

   numbers = [
        951, 402, 984, 651, 360, 69, 408, 319, 601, 485, 980, 507, 725, 547, 544, 
        615, 83, 165, 141, 501, 263, 617, 865, 575, 219, 390, 984, 592, 236, 105, 942, 941, 
        386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345, 
        399, 162, 758, 219, 918, 237, 412, 566, 826, 248, 866, 950, 626, 949, 687, 217, 
        815, 67, 104, 58, 512, 24, 892, 894, 767, 553, 81, 379, 843, 831, 445, 742, 717, 
        958, 609, 842, 451, 688, 753, 854, 685, 93, 857, 440, 380, 126, 721, 328, 753, 470, 
        743, 527
    ]

    # your code goes here
    for number in numbers:
        if number <= 237 and number%2 == 0:
            print number

次の問題が発生しました。

Traceback (most recent call last):
  File "/base/data/home/apps/s~learnpythonjail/2.365841894475711898/main.py", line 75, in execute_python
    exec(code, {})
  File "<string>", line 14
    print number
        ^
IndentationError: expected an indented block

解決方法を教えてください。

4

3 に答える 3

5

エラーは、前の行printのレベルを超えてインデントされていないことを意味します。if

printエディターで行が適切にインデントされているように見える場合は、タブとスペースが矛盾して混在しています。すべてのタブをスペースに置き換えて修正します。

ほとんどのエディターは、インデントにのみスペースを使用するように構成できます。これは、Python スタイルガイド (PEP 8)が推奨するものです。

タブまたはスペース?

タブとスペースを混在させないでください。

Python をインデントする最も一般的な方法は、スペースのみを使用する方法です。2 番目に一般的な方法は、タブのみを使用する方法です。タブとスペースの混合でインデントされたコードは、スペースのみを使用するように変換する必要があります。-t オプションを使用して Python コマンド ライン インタープリターを呼び出すと、タブとスペースが不正に混在しているコードに関する警告が発行されます。-tt を使用すると、これらの警告はエラーになります。これらのオプションは強くお勧めします!

新しいプロジェクトでは、タブよりもスペースのみを強くお勧めします。ほとんどのエディターには、これを簡単に行うための機能があります。

于 2013-03-27T16:19:51.790 に答える
2

すべての空白文字をタブ付きで表示するエディター (タブ サイズを 4 に設定) でコードを表示すると、次のようになります。

ここに画像の説明を入力

小さなドットはスペース文字で、矢印はタブです。他の回答で述べたように、タブとスペースを混在させることは悪い考えです。上記のコードは問題ないように見えますが、タブ サイズを 8 文字に変更するとどうなるかを見てください。

ここに画像の説明を入力

これが、表示されているエラーの根本原因です。タブとスペースを混在させると、エディターに表示されるインデントは、Python インタープリターに表示されるインデントと同じではない場合があります。

于 2013-03-27T16:30:48.310 に答える
1

私はあなたのケースを再現しました: if ステートメントの前に 1 つのテーブル、印刷の前に 8 つのスペース。代わりにスペースのみを使用してください。

于 2013-03-27T16:21:06.547 に答える