nanana、条件分岐処理を学ぶ(Python学習記録-3日目-)

■まえおき

下記の記事でPython学び直してやるぞーと宣言しました。 nanana-dot.hatenablog.com

前回に引き続いて、「繰り返し処理」と「条件分岐処理」の、
ふたつの処理に関して整理しながら遊んでみたいと思います。

■今日の学び

  • 条件分岐を処理する「if...else」と複数条件処理の「if...elif」

■お寿司注文ロボット2号

前回の記事では、 ひたすらfor文とwhile文を使って、ひたすらサーモンを注文するブログラムを作りました。

しかし、サーモン以外も食べたいので、 今回はサーモンではないネタも注文するお寿司注文ロボット2号をつくりました。 これがこちらです。

#サンプルコード
#100回注文するなかで、注文数に応じて、注文数が15の倍数で「大トロ」、5の倍数で「タコ」、3の倍数で「生エビ」が注文できて、それ以外は「サーモン」を頼む
for cntOrder in range (1,101):
    print(cntOrder)
    if cntOrder % 15 ==0:
        print('大トロください!')
    elif cntOrder % 5 ==0:
        print('タコください')
    elif cntOrder % 3 ==0:
        print('生エビください')
    else:
        print('サーモンください')
#出力
1
サーモンください
2
サーモンください
3
生エビください
4
サーモンください
5
タコください
6
生エビください
7
サーモンください
8
サーモンください
9
生エビください
10
タコください
11
サーモンください
12
生エビください
13
サーモンください
14
サーモンください
15
大トロください!
16
サーモンください
17
サーモンください
18
生エビください
19
サーモンください
20
タコください 
...
(以下、省略)

(かの有名なFizzBuzz問題もこんな感じで解けますね)

基本的な文法

条件をつけることで、単調な処理から複雑な処理ができるようするのが「条件分岐処理」です。
まずは、条件を1つだけ付ける場合の構文は以下のようになります。

if 条件:
    条件がTrueのときに実行される処理 a
else:
    条件がFalseのときに実行される処理 b

例としては、

num = int(input(''))
if num % 7 == 0:
    print('7の倍数です')
else:
    print('7の倍数ではありません')

出力は

20190504
7の倍数ではありません

となります。 一方で複数の条件分岐したい場合もあるかと思います。
そんなときは下記のように書くと、複数の条件分岐ができます。

if 条件A:
    条件AがTrueのときに実行される処理a
elif 条件B:
    条件AがFalseかつ条件BがTrueのときに実行される処理 b
else:
    上記条件がFalseのときに実行される処理 c

これをつかった例として、こんな感じにかけます。

num = int(input(''))
if num % 7 == 0:
    print('7の倍数です')
elif num % 3 ==0:
    print('3の倍数です')
else:
    print('3の倍数でも7の倍数ではありません')

出力は

20190504
3の倍数です

となります。

ところで条件の部分でさりげなくでてきた「==」ですが、
「x == y」でxとyが等しい時にTrueを返す、「比較演算子」のひとつです。
比較演算子は他にも

  • x != y →xがyに等しくない時にTrueを返す。
  • x in y →xという要素がyにあるときにTrueを返す。シーケンス(文字列、リストなど)の比較に使う。
  • x <(>) y → xとyの大小比較で、不等号がなりたつときにTrueを返す。
  • x >(<)= y → xとyが等しい時も含めて、不等号がなりたつときにTrueを返す。不等号は等号の左側に書く。

といった種類があります。

今日はここまでです。 明日は「リストとタプル」についてです。


本日の学習時間:2時間
累計の学習時間:6時間