本やUdemy、Progateなどを用いてPythonやhtml、cssの学習過程を残していきます。

【Python入門編】if文(フロー制御文)の使い方を細かくメモしていく

if文

フロー制御文を用いることで、条件に従ってpythonの命令を実行するかどうかを決定することができます。

フロー制御文には、条件式(if 〇〇:)と呼ばれる部分からはじまり、節と呼ばれるコードのブロックが続きます。

条件式がTrueかFalseかによって、何を実行するか決まりますので、ほぼ全てのフロー制御文でブール型が使われます。

Pythonのコードは1行以上をひとまとまりとしてブロックとすることができます。

フロー制御文

フロー制御文

フロー制御文は上の様なフローチャートの記号に対応づけることが可能です。

ひし形の部分が条件分岐をする箇所となります。

if文の基本構文

>>>name = "レム"
>>>if name == "レム":
>>>    print("鬼がかってますね。")
鬼がかってますね。
ブロック作成3つのルール

1.ブロックは字下げが増えると開始する

2.ブロックの中には他のブロックを含めることが出来る

3.字下げがなくなるか、上位ブロックの字下げに戻るとブロックは終了する

if文のブロックは条件式がTrueの時に実行され、条件式がFalseならブロックの処理はスキップされます。

if文は次の様に構成されます。

if 条件式:
[スペース]処理

フロー制御文は全てコロン(:)で終わり、次にコードのブロックが続きます。

if …else文

if…else文は次の様に構成されます。

if 条件式:
[スペース]処理①
else:
[スペース]処理②

日本語に訳すと「もし条件式がTrueであれば、処理①を行い、Falseであれば処理②を行う」です。

尚、else文には条件式は必要ありません。

>>>name = "スバル"
>>>if name == "レム":
>>>    print("鬼がかってますね。")
>>>else:
>>>    print("出ていけよ紛い物")
出ていけよ紛い物

上のコードではname == “レム”ではない(False)ので、処理①print(“鬼がかってますね”)がスキップされて、print(“出ていけよ紛い物”)が実行されました。

この様に、elseを使うことで「〇〇であれば、△△せよ。そうでなければ■■せよ」の文を作る事ができます。

 elif文

if…elseではifもしくはelse節のどちらか一方しか実行されませんが、多数の節から一つ実行したい場合はelif文を使います。

※elifはelse ifの略です。

elifは次の様に使います。

if 条件式Ⅰ:
[スペース]処理①
elif 条件式Ⅱ:
[スペース]処理②
else:
[スペース]処理③

日本語に訳すと「もし条件式ⅠがTrueであれば、処理①を行え。そうでなく、もし条件式ⅡがTrueであれば処理②を行え。全てFalseであれば処理③を行え。」

>>>name = "ベア子"
>>>if name == "レム":
>>>    print("鬼がかってますね。")
>>>elif name == "ベア子":
>>>    print("冗談じゃないかしら")
>>>else:
>>>    print("出ていけよ紛い物")
冗談じゃないかしら

上はnameがベア子になっている為、name == “レム”はFalseとなり、スキップされます。

次のname == “ベア子”はTrueなので、print(“冗談じゃないかしら”)が実行され、処理が終わります。

elif文は順番に注意!!
>>>name = "ベア子"
>>>age = 400
>>>if name == "レム":
>>>    print("鬼がかってますね。")
>>>elif age == 17:
>>>    print("もしかして、ラム?")
>>>elif age > 17:
>>>    print("もしかしてエミリアたん?")
>>>elif age > 100:
>>>    print("さては、ベア子だな?")
>>>else:
>>>    print("出ていけよ紛い物")
もしかしてエミリアたん?

上はage > 17を先に記載してしまった為、age > 100 に絶対に到達しないプログラムとなってしまいました。

答えはベア子なのに、エミリアと思われてしまっています。

※ageが100より大きければ、常に17よりも大きくなる為理論的にage > 100には到達不可能。

>>>name = "ベア子"
>>>age = 400
>>>if name == "レム":
>>>    print("鬼がかってますね。")
>>>elif age == 17:
>>>    print("もしかして、ラム?")
>>>elif age > 100:
>>>    print("さては、ベア子だな?")
>>>elif age > 17:
>>>    print("もしかしてエミリアたん?")
>>>else:
>>>    print("出ていけよ紛い物")
もしかしてエミリアたん?

ベア子とエミリアの条件式を入れ替えれば、機能する様になりました。

この記事を書いた人

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です