フロー制御文を用いることで、条件に従ってpythonの命令を実行するかどうかを決定することができます。
フロー制御文には、条件式(if 〇〇:)と呼ばれる部分からはじまり、節と呼ばれるコードのブロックが続きます。
条件式がTrueかFalseかによって、何を実行するか決まりますので、ほぼ全てのフロー制御文でブール型が使われます。
Pythonのコードは1行以上をひとまとまりとしてブロックとすることができます。
フロー制御文は上の様なフローチャートの記号に対応づけることが可能です。
ひし形の部分が条件分岐をする箇所となります。
>>>name = "レム" >>>if name == "レム": >>> print("鬼がかってますね。") 鬼がかってますね。
if文のブロックは条件式がTrueの時に実行され、条件式がFalseならブロックの処理はスキップされます。
if文は次の様に構成されます。
if 条件式: [スペース]処理
フロー制御文は全てコロン(:)で終わり、次にコードのブロックが続きます。
if…else文は次の様に構成されます。
if 条件式: [スペース]処理① else: [スペース]処理②
日本語に訳すと「もし条件式がTrueであれば、処理①を行い、Falseであれば処理②を行う」です。
尚、else文には条件式は必要ありません。
>>>name = "スバル" >>>if name == "レム": >>> print("鬼がかってますね。") >>>else: >>> print("出ていけよ紛い物") 出ていけよ紛い物
上のコードではname == “レム”ではない(False)ので、処理①print(“鬼がかってますね”)がスキップされて、print(“出ていけよ紛い物”)が実行されました。
この様に、elseを使うことで「〇〇であれば、△△せよ。そうでなければ■■せよ」の文を作る事ができます。
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(“冗談じゃないかしら”)が実行され、処理が終わります。