質問: if else文の中に更にif else文を作りたいのですが、エラーが出ます。 エラー内容は、以下の通りです。 ``` File "type.py", line 14 if d=="handsum": ^ IndentationError: unindent does not match any outer indentation level ``` 2つ目のif文(if d=="handsum":)は1つ目のif文より右に書いているのですが、うまくいきません。 どなたか解決策を教えていただければ幸いです。 コード ``` qs=["What is your name?", "What is your favorite", "What is your queset?"] c=["trump","USA"] a=input(qs) if a=="president": d=input(c) if d=="handsum": print("great") else: print("you are fired") else: print("bye") ```
回答: 単純に、同じレベルのインデントの桁位置が合っていないからです。 大雑把に感じだけでインデントしているように見えているだけでは駄目で、厳密に桁位置も合わせる必要があります。 以下は何処が間違っているかの指摘です。 (他に微妙にインデント桁位置が統一されていません) ``` if a=="president": d=input(c) ## この行のインデントの桁位置と if d=="handsum": ## 上の行と桁位置が合っていない print("great") else: ## 対応する if と桁位置が合っていない print("you are fired") else: print("bye") ``` 修正すると以下になります。他の行のインデントも併せて1インデント4桁にしてあります。 ``` if a=="president": d=input(c) ## この行のインデントの桁位置と if d=="handsum": ## 上の行と桁位置が合っていない print("great") else: ## 対応する if と桁位置が合っていない print("you are fired") else: print("bye") ``` また、空白とタブを混在させてもいけません。見た目は同じでも文字数としては違うのでインデントが合わないことになります。どちらかに統一していればOKです。 それからたまに間違えて全角空白を入れてしまうこともあるので注意しましょう。