Python,3.0,if

Python入門②(条件分岐編)

条件分岐

この記事は、Python入門①(はじめの一歩)からの続きです。

条件分岐とは

条件分岐(じょうけんぶんき)とは、プログラムの処理を条件によって変えることです。
pythonでは、条件分岐をif文(イフ)で記述します。

if1.py
# 数値を入力してもらう
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文が便利です。

if2.py
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を用います。

if3.py
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の数に制限はありません。必要に応じて、いくつでも書いてもかまいません。

複数の条件

if4.py
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です。

if5.py
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.

→ Python入門③(繰り返し処理変)