pythonにてfor文での繰り返し処理の中でifを用いた判定を行なっております。
その際に、本来であればforに対してelseを用いると最後の繰り返し時にのみ動作する命令を指定できると思うのですが、ifも利用しているとelseが混同しているのか分かりませんが、インデントエラーが表示されてしまいます。
どのようにすればforとifのelseを正しく区別し記述できますでしょうか?](64914278eb6cdbe9637998e104ab664f.png)
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
try-exceptがelseを超えているのが問題だと思います。
Python
1result = [] 2for i in ip_list: 3 try: 4 if 0 <= int(i) <= 255: 5 result.append(int(i)) 6 except ValueError: 7 print("False") 8 break; 9else: 10 if len(result) != 4: 11 print("False")
公式リファレンスには、次のように書いてあります。
try 文は下記のように動作します。
まず、 try 節 (try clause) (キーワード try と except の間の文) が実行されます。
さらに、節に関しては次のように書いてあります。(引用元)
一つの複合文を成す各節のヘッダは、全て同じインデントレベルに置かれます。
try節が見つからないのが問題なのでしょう。
投稿2017/09/15 12:10
編集2017/09/15 12:23総合スコア35660
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/15 12:20 編集
2017/09/15 12:18
2017/09/15 12:21
2017/09/15 12:23 編集
2017/09/15 12:25
2017/09/15 12:29
2017/09/15 12:33
2017/09/15 12:45
2017/09/15 12:58
2017/09/15 13:08
0
elseのインデント位置で区別がつけられるのではないかと思います。
下記のコード実行してもインデントエラーが発生するでしょうか。
Pytyon
1for i in [1,2,3,4,5]: 2 if i % 2 == 0: 3 print(i) 4 else: 5 print(i * 3) 6else: 7 print("end") 8
投稿2017/09/15 11:11
退会済みユーザー
総合スコア0
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。