Python 雑談・雑学 - else ステートメントは if 文だけではなくて for 文とも使えるよ、と教えたら感心された話 投稿一覧へ戻る

Tags: Python , miscellaneous , else , for

Published 2020年5月20日16:04 by T.Tsuyoshi

Python Topic:

else ステートメントは if 文だけではなくて for 文とも使えるよ、と教えてあげたら感心された話。


for 文でループしながら処理を行っている場合、
処理を続けるかループを抜けるかを判断するために、
1つの変数をフラグとして利用する、というのはよくあること。


でも for ~ else 文を使えばフラグ変数を用意しなくても大丈夫。


例1: フラグ変数を使用する場合

grades = ["ok", "ok", "ok", "fail", "ok", "ok"]

all_successful = True
for grade in grades:
if grade == "fail":
print("残念でした!")
all_successful = False
break
print(f'この科目は {grade}.')
print("よくできました!")

if all_successful:
print("全部OK、合格!")



例2: for ~ else を使用する場合

grades = ["ok", "ok", "ok", "fail", "ok", "ok"]

for grade in grades:
if grade == "fail":
print("残念でした!")
break
print(f'この科目は {grade}.')
print("よくできました!")
else:
print("全部OK、合格!")



for と同じブロックに置かれた else 文は
for ループ処理が途中で break することなく最後まで終了した場合に実行されます。


よって、grades リスト中の "fail" を "ok" にして実行すると、
"全部OK、合格!" が出力されます。


これをアドバイスしただけですごく感心されました。
何か得した気分!

この投稿をメールでシェアする

0 comments

コメントはまだありません。

コメントを追加する(不適切と思われるコメントは削除する場合があります)