#条件分岐
この記事は、Python入門①(はじめの一歩)からの続きです。
##条件分岐とは
**条件分岐(じょうけんぶんき)とは、プログラムの処理を条件によって変えることです。
pythonでは、条件分岐をif文(イフ)**で記述します。
# 数値を入力してもらう
x = input("input number : ")
# 文字列型を数値型に変換
num = int(x)
# もしもその数値が3ならば、メッセージを表示
if num == 3 :
print "The Number is 3"
実行すると、数値のの入力を求めてきます。3と入れると、メッセージが出ますが、そうでなければ何も出ません。
if文のあとは、:を入れて改行してください。
①3を入力した場合の実行結果
input number : 3 ← 整数を入力
The Number is 3
②3以外の値を入力した場合
input number : 1
このように、ifを用いれば、条件分岐を記述することが可能です。
値の比較には、比較演算子を用います。比較演算子は、二つの値を比較するのに用います。
比較演算子
演算子 | 意味 | 記入例 |
---|---|---|
== | 二つの値が等しいかどうかを調べる | a == b |
!= | 二つの値が等しくないかどうかを調べる | a != b |
> | 左辺が変より大きいかどうかを調べる | a > b |
< | 左辺が変より小さいかどうかを調べる | a < b |
>= | 左辺が変より以上どうかを調べる | a >= b |
<= | 左辺が変より以下かどうかを調べる | a <= b |
if else
いf
ある条件が成り立つときは処理Aを、成り立たないときは処理Bを、というときは、if else文が便利です。
x = input("input number : ")
num = int(x)
if num %2 == 0:
print "even"
else:
print "odd"
ifの場合と同様に、elseのあとには:を入れて改行してください。
プログラムを実行したら、「input number:」と出ますので、そのあとに整数を入力してください。偶数なら「even」と表示されます。
input number : 6
even
奇数ならば、「odd」と表示されます。
input number : 5
odd
と出力されます。
ここで出てくるelseは、ifの条件が成り立たなかったときに実行される処理です。
## elif
さらに、複数の分岐をする場合は、elifを用います。
x = input("input number : ")
num = int(x)
if num > 0:
print "plus"
elif num < 0:
print "minus"
else:
print "zero"
ifやeleseの場合と同様に、elifの後には:を入れて改行してください。
今度は、入力した数が正の数であれば「plus」、負の数であれば、「minus」、ゼロであれば、「zero」と表示されます。
input number : 5 ← 正の数を入力した場合
plus
input number : -2 ← 負の数を入力した場合
minus
input number : 0 ← ゼロを入力した場合
zero
最初のifで、numが正の数(0より大きい)かどうかを調べます。そして、もしその条件に合致しなければ、次のelifで、今度はnumが負の数(0より小さい)かどうかを調べます。
そして、そのどの条件に合わない場合は、elseの処理が実行されますが、最終的にそのような数は0しかないので、そのように判断して、結果を出力しています。
なお、**elifの数に制限はありません。**必要に応じて、いくつでも書いてもかまいません。
複数の条件
x = input("input number x : ")
y = input("input number y : ")
if x > 0 and y > 0:
print("x and y are both plus.")
else:
print("x or y is not plus.")
実行すると、x,yの2つの整数へのあたいの代入が行われます。この時、両方とも0より大きければ、
input number x : 5
input number y : 3
x and y are both plus.
と、表示され、どちらかが負の数であれば、
input number x : 6
input number y : -3
x or y is not plus.
となります。
andは、複数の条件が成り立つかどうかを判定します。このサンプルでは、x > 0とy > 0の両方が成り立つかどうかを判定します。
一方、どちらか一方の条件が成り立つ場合を判定したいこともあります。そんな時用いるのが、orです。
x = input("input number x : ")
y = input("input number y : ")
if x > 0 or y > 0:
print("x or y is plus.")
else:
print("x and y are not plus.")
入力した二つの数のうち、どちらか一方でもプラスであれば、以下のような結果が出ます。
input number x : 5
input number y : -2
x or y is not plus.
逆に、両方ともマイナスである場合、以下のようなメッセージが出ます。
input number x : -1
input number y : -2
x or y is not plus.