こんにちは!hikaruです!
プログラミング初心者の方向けにPythonでの条件分岐をわかりやすく解説します。
*Pythonはswitch文とcase文は実装されておりません。if文のみの解説をします。
条件分岐とは
プログラミングにおいて、条件によって処理を変えたい場合は、条件分岐(if文)を使用します。
例えば、サブスクで映画が見れるWEBサイトを作成するとしましょう。
年齢によって閲覧不可となる制限を掛けます。
下記のような制限内容を設けました。
制限内容
PG12 : 12才未満および小学生の観覧には、親又は保護者の同意が必要になります。
R15+ : 15才未満の方は、ご覧になれません。
R18+ : 18才未満の方は、ご覧になれません。
プログラミングで上記の制限内容を叶えることができるのが、条件分岐です。
if文による条件分岐
先ほどの制限内容を図にしてみました。
フローチャートで確認しましょう。
これをpythonでコーディングすると、下記のようになります。
* age = 変数です。ここでは”年齢を表すもの”という認識でOKです!
if age < 12:
print("PG12閲覧禁止 R15+閲覧禁止 R18+閲覧禁止")
elif age < 15:
print("R15+閲覧禁止 R18+閲覧禁止")
elif age < 18:
print("R18+閲覧禁止")
else:
print("全ての映画が閲覧可能")
if文の構文解説
突然長いコードを見てびっくりしたかもしれませんね。
正しい構文(書き方)を確認してみましょう。
if文解説
if 条件式:
条件式が真の時に実行する処理
条件式が真の時(条件に合った場合)に二行目の処理が実行されます。
条件式が偽の時(条件に合わなかった場合)は、処理は行われません。
条件式の後に「:」を忘れずに(^^)!!忘れがちですwエラーになります。
if age < 12:
print("PG12閲覧禁止 R15+閲覧禁止 R18+閲覧禁止")
変数age(年齢)が12歳未満であった場合に、「PG12閲覧禁止 R15+閲覧禁止 R18+閲覧禁止」が出力されます。
条件が偽の場合の処理(else)
上記では、条件式に当てはまらない場合は何も処理が行われません。
条件式に当てはまらない場合の処理を抑えましょう。
下記はelseを使用した構文です。
if 条件式:
条件式が真の時に実行する処理
else:
条件式が偽の時に実行する処理
条件式に合わない場合は、4行目の処理が実行されます。
if age < 12:
print("PG12閲覧禁止 R15+閲覧禁止 R18+閲覧禁止")
else:
print("全ての映画が閲覧可能")
変数age(年齢)が12歳以上であった場合、「全ての映画が閲覧可能」が出力されます。
複数の条件式を使った条件分岐(elif)
上記にさらに条件を加えたい場合は、下記の構文を用います。
if 条件式1:
条件式1が真の時に実行する処理
elif 条件式2:
条件式1が偽で条件式2が真の時に実行する処理
elif 条件式3:
条件式1及び条件式2が偽で条件式3が真の時に実行する処理
else:
すべての条件式が偽のときに実行する処理
if age < 12:
print("PG12閲覧禁止 R15+閲覧禁止 R18+閲覧禁止")
elif age < 15:
print("R15+閲覧禁止 R18+閲覧禁止")
elif age < 18:
print("R18+閲覧禁止")
else:
print("全ての映画が閲覧可能")
変数age(年齢)が12歳未満の場合は、「PG12閲覧禁止 R15+閲覧禁止 R18+閲覧禁止」が出力されます。
変数age(年齢)が12歳以上で15歳未満の場合は、「R15+閲覧禁止 R18+閲覧禁止」が出力されます。
変数age(年齢)が15歳以上で18歳未満の場合は、「R18+閲覧禁止」が出力されます。
変数age(年齢)が上記以外の場合は、「全ての映画が閲覧可能」が出力されます。
変数に数字(random.randint())を代入して実行する
ただコードを眺めていても、学習になりません。
実際にコードを実行させてみましょう。
変数ageに、数字を代入しましょう。
ただし、自分で数字を指定しても面白くありません。
ランダムに数字を生成しましょう。
import random
age = random.randint(10, 22)
print(age)
1行目にimport randomと書くことで、randomモジュールがインポートされます。
importは、Pythonでモジュールを利用するためのものです。
モジュールは、関数やクラスなどをまとめて記述したファイルのことです。
少し難しいので、ここでは、モジュールは便利な機能群という認識でいいでしょう。
簡単に言い換えると、randomモジュールという便利機能を利用することを宣言しています。
二行目には、ageという変数に10〜22の数字(int型)をランダムに代入しています。
これを実行させると、毎回数字がランダムに生成されます。
22
10
17
では、先ほどのコードと合わせて実行させてみましょう。
毎回、ランダムに出力が変わります。
import random
age = random.randint(10, 22)
print("ユーザーは" + str(age) + "歳です")
if age < 12:
print("PG12閲覧禁止 R15+閲覧禁止 R18+閲覧禁止")
elif age < 15:
print("R15+閲覧禁止 R18+閲覧禁止")
elif age < 18:
print("R18+閲覧禁止")
else:
print("全ての映画が閲覧可能")
ユーザーは17歳です
R18+閲覧禁止
ユーザーは13歳です
R15+閲覧禁止 R18+閲覧禁止
ユーザーは21歳です
全ての映画が閲覧可能
条件分岐を入れ子(ネスト)にする
条件分岐は、入れ子(ネスト)にすることができます。
入れ子(ネスト)とは、条件分岐(や繰り返し処理)の内部に、条件分岐(や繰り返し処理)が含まれていることです。
実は、先ほどのコードでは少し足りないところがあることにお気付きですか(^^)?
PG12 : 12才未満および小学生の観覧には、親又は保護者の同意が必要になります。
12歳未満のユーザーは、親又は保護者の同意があれば閲覧可能です。
先ほどは強制的に閲覧不可となりました。
これでは、WEBサイトとしては不完全です。
12歳未満の条件分岐の箇所を編集しましょう。
if age < 12:
if parents == "yes":
print("保護者の同意を得られたのでPG12は閲覧可能です")
print("R15+閲覧禁止 R18+閲覧禁止")
elif parents == "no":
print("保護者の同意は得られませんでした")
print("PG12閲覧禁止 R15+閲覧禁止 R18+閲覧禁止")
これで入れ子(ネスト)完成です!!
12歳未満で保護者の同意を得られた場合は、PG12は閲覧可能です。
12歳未満で保護者の同意を得られない場合は、PG12は閲覧不可です。
保護者の同意はランダムに出力させましょう。
from random import choice
parents = choice(['yes', 'no'])
長くなってきたので、簡単解説します。
「チョイスという便利機能を使って、変数parentsにyesかnoをランダムに代入する」という認識でいいでしょう!
全て組み合わせると、、、
import random
age = random.randint(10, 22)
print("ユーザーは" + str(age) + "歳です")
from random import choice
parents = choice(['yes', 'no'])
if age < 12:
if parents == "yes":
print("保護者の同意を得られたのでPG12は閲覧可能です")
print("R15+閲覧禁止 R18+閲覧禁止")
elif parents == "no":
print("保護者の同意は得られませんでした")
print("PG12閲覧禁止 R15+閲覧禁止 R18+閲覧禁止")
elif age < 15:
print("R15+閲覧禁止 R18+閲覧禁止")
elif age < 18:
print("R18+閲覧禁止")
else:
print("全ての映画が閲覧可能")
ユーザーは16歳です
R18+閲覧禁止
ユーザーは22歳です
全ての映画が閲覧可能
ユーザーは11歳です
保護者の同意は得られませんでした
PG12閲覧禁止 R15+閲覧禁止 R18+閲覧禁止
ユーザーは10歳です
保護者の同意を得られたのでPG12は閲覧可能です
R15+閲覧禁止 R18+閲覧禁止
最後に
如何でしたか(^^)?!
少しでもプログラミングの楽しさが伝わったら、嬉しいです。
プログラミング学習は、頭の体操です。
「習うより、慣れろ」です(^^)!
たくさんコーディングして、メキメキと力をつけましょう!!
おすすめのプログラミング学習サイトを紹介します。
環境構築不要で、無料で学習できます。
paizaはCランク問題を解くことで、多くのIT企業からスカウトをもらえるようになります。
プログラミング学習をして、IT業界に就職や転職をしたい方は、paizaがおすすめです(^^)♪
progate
paiza
これからもPython学習を一緒に頑張っていきましょう。
応援しています(^^)
最後までお付き合いいただきまして、ありがとうございます。
よろしければ、下記の関連記事も参考にしてください。
コメント