【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」とは、「インデントに間違いがあります」というエラーです。
インデントとは以下の図のようなことを指します。
Python 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まで!
最後までお読みいただきありがとうございます。
スポンサードサーチ