【初心者】Python条件分岐(if文)解説

Python

こんにちは!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
Progate(プロゲート) | Learn to code, learn to be creative.
Progateはオンラインでプログラミングを学べるサービスです。プログラミングを学んでWEBアプリケーションを作ろう。
paiza
ITエンジニア向け転職・就活・学習サービス【paiza】
ITエンジニア・プログラマ専門の総合求職・学習サイト【paiza(パイザ)】。プログラミングスキルチェックで実力を可視化し、スキルがあると認められれば企業からスカウトが届くなど転職が有利に。学歴や職歴ではなく「技術がある人」が評価されるサー...

これからもPython学習を一緒に頑張っていきましょう。

応援しています(^^)

最後までお付き合いいただきまして、ありがとうございます。

よろしければ、下記の関連記事も参考にしてください。

コメント

タイトルとURLをコピーしました