エラー: Python で else & elif ステートメントが機能しない
Python では、else
ステートメントを elif
および if
ステートメントと組み合わせることができます。 しかし、コード内で if...elif...else
ステートメントを実行すると、Python で SyntaxError: 無効な構文
という名前のエラーが発生する場合があります。
主に、コードに間違ったインデントがある場合に発生します。 このチュートリアルでは、Python で SyntaxError: 無効な構文
を修正する方法を説明します。
Python の else
& elif
ステートメント SyntaxError
を修正
インデントは、Python のコード行の先頭の空白 (スペースとタブ) です。 他のプログラミング言語とは異なり、Python ではインデントが非常に重要です。
Python はインデントを使用してコードのブロックを表します。 インデントが適切に行われていない場合、エラーが発生します。
else
と elif
ステートメントの例を見てみましょう。
コード例:
num = 25
guess = int(input("Guess the number:"))
if guess == num:
print("correct")
elif guess < num:
print("The number is greater.")
else:
print("The number is smaller.")
エラー出力:
File "c:\Users\rhntm\myscript.py", line 5
elif guess < num:
^^^^
SyntaxError: invalid syntax
上記の例では、5 行目のインデントが正しく行われていないため、例外 SyntaxError
が発生します。if
コード ブロックの後に else
コード ブロックを使用する必要があります。
以下に示すように、elif
ステートメントは if
ステートメントと一致している必要があります。
コード例:
num = 25
guess = int(input("Guess the number:"))
if guess == num:
print("correct")
elif guess < num:
print("The number is greater.")
else:
print("The number is smaller.")
出力:
Guess the number:20
The number is greater.
これで、コードが正常に実行されます。
Python では、ステートメントのコード ブロックを構造化するためにインデントが不可欠です。 ステートメントのグループ内のスペースの数は、コードのブロックを示すために等しくなければなりません。
デフォルトのインデントは、Python では 4つのスペースです。 それはあなた次第ですが、少なくとも 1つのスペースを使用する必要があります。
コードに間違ったインデントがある場合、Python では IndentationError
が返されます。 コードのインデントを修正することで修正できます。
関連記事 - Python Error
- AttributeError の解決: 'list' オブジェクト属性 'append' は読み取り専用です
- AttributeError の解決: Python で 'Nonetype' オブジェクトに属性 'Group' がありません
- AttributeError: 'generator' オブジェクトに Python の 'next' 属性がありません
- AttributeError: 'numpy.ndarray' オブジェクトに Python の 'Append' 属性がありません
- AttributeError: Int オブジェクトに属性がありません
- AttributeError: Python で 'Dict' オブジェクトに属性 'Append' がありません