

この画面はpython3の対話シェルの画面なのですが、一番下の方でelse:を打った後で改行しようとすると、なぜか画像のようなエラーが出てしまいます。何がダメなのでしょうか？

[code]

    SyntaxError: inconsistent use of tabs and spaces in indentation
    
[/code]

[![画像の説明をここに入力](https://i.stack.imgur.com/MAgB5.png)](https://i.stack.imgur.com/MAgB5.png)


CC BY-SA 4.0
2020-12-22T01:23:14.913
72806
2021-07-15T13:03:35.343
2020-12-22T01:28:27.313
3060
43228
question
python python3 python-idle
どこの空白がおかしいのかがわかりません


原因はメッセージ内容にあるように、インデントするのにタブと空白が混在していて一貫性が無いということです。  
例えばこの記事など。  
[【Pythonエラー】TabError: inconsistent use of tabs and spaces in
indentation](https://algorithm.joho.info/programming/python/taberror-
inconsistent-use-of-tabs-and-spaces-in-indentation/)

IDLEの対話シェル(モード)なら、こちらの記事が当てはまりそうです。  
[インデントの入力方法 - PythonのIDLEの使い方の基本](https://gammasoft.jp/python/python-idle-
basic-operation/#indent)

>
> IDLEでは複合文で改行すると、対話モードでは「タブ」、エディタでは「半角スペース４つ」が自動的に追加されます。従って、混在を防ぐために、対話モードでは「タブ」、エディタでは「半角スペース４つ」を統一して用いるようにしてください。
>
> しかし、入力する時は、何も気にしないでどちらもキーボードで Tab キーを押してください。
>
> IDLEのエディタでは Tab キーを押すと「半角スペース４つ」が挿入されるように設定されているので、結局どちらでもキーボードでは Tab
> キーだけを使えば良いことになります。

**Tabキーでのインデント入力を試してみてください。**

それから上記記事にあるリンク先で、質問の内容とは直接関連してはいないようですが、後で発生するかもしれないので紹介しておきます。  
[PythonのIDLEシェルでelifとelseのインデントエラーを回避する方法](https://gammasoft.jp/blog/python-
idle-indent-error/)

* * *

エディタで編集している場合は、この記事回答 [With the IDLE editor you can use
this:](https://stackoverflow.com/a/30687213/9014308) に解決手順が載っているようです。

> With the [IDLE](http://en.wikipedia.org/wiki/IDLE_%28Python%29) editor you
> can use this:
>
>   * Menu Edit → Select All
>   * Menu Format → Untabify Region
>   * Assuming your editor has replaced 8 spaces with a tab, enter 8 into the
> input box.
>   * Hit select, and it fixes the entire document.
>

日本語の関連記述はこちら。[Format メニュー (Shell ウィンドウ、Editor
ウィンドウ)](https://docs.python.org/ja/3/library/idle.html#format-menu-editor-
window-only) の `Untabify Region [領域の非タブ化]`でしょう。

> Untabify Region [領域の非タブ化]  
>  すべての タブを適切な数の空白に置き換えます。


CC BY-SA 4.0
2020-12-22T02:19:28.167
72812
2020-12-22T02:38:23.623
2020-12-22T02:38:23.623
26370
26370
72806
answer