Python 雑談・雑学 - else ステートメントは if 文だけではなくて for 文とも使えるよ、と教えたら感心された話 投稿一覧へ戻る
Published 2020年5月20日16:04 by mootaro23
SUPPORT UKRAINE
- Your indifference to the act of cruelty can thrive rogue nations like Russia -
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、合格!")
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 grade in grades:
if grade == "fail":
print("残念でした!")
break
print(f'この科目は {grade}.')
print("よくできました!")
else:
print("全部OK、合格!")
for と同じブロックに置かれた else 文は
for ループ処理が途中で break することなく最後まで終了した場合に実行されます。
よって、grades リスト中の "fail" を "ok" にして実行すると、
"全部OK、合格!" が出力されます。
これをアドバイスしただけですごく感心されました。
何か得した気分!
この記事に興味のある方は次の記事にも関心を持っているようです...
- People who read this article may also be interested in following articles ... -