【Python】「IndentationError: expected an indented block」、「IndentationError: unexpected indent」などの解決方法

こんにちは、にわこまです。

今回は、pythonのIndentationErrorを解決する方法を紹介します。pythonは1行ずつ読み込むため、インデントがとても重要となります。クラス、関数、if文、for文、while文の近くでは特に気を付けましょう。

 

誤字脱字や分からない点、解決してほしい問題がありましたらご連絡お待ちしております。

メールまたはTwitterのDMまで!

 

 

スポンサードサーチ


IndentationErrorの解決方法

1.クラス、関数、if文、for文、while文、try~except…文、switch文、with文の近くのインデントを確認する

2.不必要な箇所にインデントがないか確認する

 

上記の構文の近くのインデントを確認することでIndentationErrorを解決することができます。

 

そもそも「IndentationError」とは、「インデントに間違いがあります」というエラーです。

インデントとは以下の図のようなことを指します。

インデントを示す画像

 

 

エラーのサンプルコード1(expected an indented block)

IndentationErrorが発生するサンプルコードとその実行結果を以下に示します。

n = 9
if(n % 3 == 0):
print(True)

=== 実行結果 ===
  File "indent.py", line 3
    print(True)
    ^
IndentationError: expected an indented block

 

上記のコードの内容は、変数nが3で割り切れる数値である場合にTrueと表示するコードです。

 

3行目のprint文の前にインデントがないためエラーが発生しました。

 

print文の前にインデントを加えることでエラーを解決することができます。

 

エラーを解決したサンプルコードとその実行結果を以下に示します。

n = 9
if(n % 3 == 0):
    print(True)

=== 実行結果 ===
True

 

 

エラーのサンプルコード2(unexpected indent)

IndentationErrorが発生するサンプルコードとその実行結果を以下に示します。

n1 = 3
n2 = 6
    print(n1 + n2)

=== 実行結果 ===
  File "indent.py", line 3
    print(n1 + n2)
    ^
IndentationError: unexpected indent

 

上記のコードは、変数n1と変数n2を足し合わせた数値を表示する関数です。

 

3行目のprint文の前に不自然にインデントがあるためエラーが発生しました。

 

3行目のprint文の前のインデントを削除することでエラーを解決することができます。

 

エラーを解決したサンプルコードとその実行結果を以下に示します。

n1 = 3
n2 = 6
print(n1 + n2)

=== 実行結果 ===
9

 

 

エラーのサンプルコード3(invalid character in identifier)

インデントに関連するエラーが発生するサンプルコードとその実行結果を以下に示します。

n = 9
if(n % 3 == 0):
    print(True)

=== 実行結果 ===
  File "indent.py", line 3
        print(True)
            ^
SyntaxError: invalid character in identifier

 

上記のコードの内容は、変数nが3で割り切れる数値である場合にTrueと表示するコードです。

 

3行目のprint文の前に全角スペースのインデントがあるためエラーが発生しました。

インデントは全て半角でないといけません。

 

エラーを解決したサンプルコードとその実行結果を以下に示します。

n = 9
if(n % 3 == 0):
    print(True)

=== 実行結果 ===
True

  

 

まとめ

まとめの画像

今回は、pythonのエラーの1つであるIndentationErrorの解決方法を紹介しました。pythonにとってインデントは重要であるため気を付けましょう。

 

改めて解決方法を以下に示します。

1.クラス、関数、if文、for文、while文、try~except…文、switch文、with文の近くのインデントを確認する

2.不必要な箇所にインデントがないか確認する

 

解決してほしい問題などがありましたらメールまたはTwitterのDMまで!

 

 

最後までお読みいただきありがとうございます。


スポンサードサーチ