Python

Python使い方/05_条件文(if文)

  1. HOME >
  2. Python >

Python使い方/05_条件文(if文)

ここでは自分の勉強の復習もかねて、何回かにわたって、Pythonの使い方をまとめていきます(全部で何回分になるかは不明)。紹介するPythonは、Python3(2ではない)。また、OSは、mac。また、jupyter notebookを使っていきます。

条件文とは

条件文(もしくは「if文」)とは、「もしある条件が正しい場合、A」という条件を制御するためのものです。さらに、「if-else文」という条件文もあり、それは「もしある条件が正しい場合、A、正しくない場合、B」という条件を制御するものです。

例えば、ある変数が偶数の場合は、「偶数です」を出力し、奇数の場合は、「奇数です」を返すような条件文を作ってみます。

上の例では、a、bという記号をそれぞれ、5と4の数を定義した上で、それぞれ、2で割った場合の余りが0の場合は、「aは偶数です」(または、「bは偶数です」)と返し、そうではない場合(else)、「aは奇数です」(または、「bは奇数です」)を返します。

結果、aに対しては、「aは奇数です」、bに対しては、「bは偶数です。」と出力されています。

比較演算子

条件文では、比較した結果、正しい(True)か間違っているか(False)によって、結果を変えるということが行われます。そこで、pythonでの比較演算子を確認しておきましょう。

比較演算子 意味 結果
> より大きい 10 > 5 True
< より小さい 10 < 5 False
>= 以上 10 >= 5 False
<= 以下 5 <= 5 True
== 等価(同じ値) 5 == 5 True
!= 非等価(違う値) 5 != 5 False

論理演算子

論理演算子には、以下のようなものがあります。

論理演算子 意味 結果
and かつ 100 > 10 and 100 >= 100 True
or あるいは 0 > 10 or 100 >= 100 True
not 否定 not 10 > 0 False

 

and(かつ)について

「条件A」と「条件B」があるときに、「条件A and(かつ) 条件B」は、条件Aが成立(True)し、条件Bも成立(True)する、という状態になったとき、「条件A and(かつ) 条件B」が成立(True)します。上の表の例では、条件Aは「100>10」(100は10よりも大きい)と条件B「100>=100」(100は100以上である。)がどちらも正しい(True)ため、結果が、True となっています。

or(または)について

「条件A」と「条件B」があるときに、「条件A or(または) 条件B」は、条件Aが成立(True)する、もしくは、条件Bが成立(True)する、という状態になったとき、「条件A or(または) 条件B」が成立(True)します。この場合、and(かつ)と違うのは、いずれかが成立(True)していれば、もう一つの条件は、不成立(False)であったとしても、「条件A or(または) 条件B」は成立(True)するのです。上の表の例では、条件Aは「0>10」(0は10よりも大きい)は不成立(False)ですが、条件B「100>=100」(100は100以上である。)は正しい(True)ため、結果が、True となっています。

not (否定)について

notは、式の前に書いて、その式の結果の逆を返します。例えば、「not True」の場合、結果は、Trueの逆である「False」を返します。上の表の例では、条件「10 > 0」(10は0より大きい)は正しいので、Trueになります。「not 10 > 0」はしたがって、「not True」と同じ状態になりますので、結果が、Falseとなっています。

条件文を作ってみよう

それでは、条件文を作ってみましょう。条件文を作る際の基本は、if、elif、elseの3つです。

if もし (条件) なら (実行)
elif あるいはもし(条件)なら(実行)
else そうでなければ(実行)

if文

苗字がMichael で、名前がJacksonの場合、「Michael JacksonはKing of Pop」を返すようなif文を作ってみましょう。

まず最初に、「Family_name」に「Michael」という文字列を定義し、「Given_name」に「Jackson」を定義しています。そして、if文が始まります。最初のif文では、「Family_name」が「Michael」と同じ値(==)であれば、if文の次を実行します。実行した結果、次のif文が実行され、「Given_name」が「Jackson」と同じ値(==)であれば、if文の次であるprint()を実行します。結果として、「Michael Jackson は King of Pop」が出力されました。

同じ内容を「and(かつ)」の論理演算子を使えば、次のようなもっとシンプルなif文にすることもできます。

なお、ifの後に続く、条件が満足されない場合、実行結果は、何も返ってきません。

if-else文

先ほどのif文では、条件が満足されない場合、実行結果は何も返ってきません。条件が満足されない場合に、別の実行を行うことができるのが、「if-else文」です。これを使うことで、「もしAならば、Bを実行する。そうでなければ、Cを実行する」ということができるようになります。

上の例では、ifの後に続く条件が、満足しない(「Family_name=='Michael'」はTrueだが、「Given_name == 'Jackson'がFalseと、両方の条件が成立しないため、False)ため、ifの後に続くprint()は実行されず、「else」の後に続くprint()が実行され増田。

 

if-elif-else文

最後は、「if-elif-else文」です。「もしAならば、Bを実行する。あるいはもしCならば、Dを実行する。そうでなければ、Eを実行する」ということができるようになります。

最初の例は、先ほどの「if-else文」と同様、最初のifの後の条件は成立していません。続く、elifの後の条件は満足しますので、elifの後に続く、print() が実行されています。

続いての例は、最初のifの後の条件は成立せず、また続く、elifの後の条件も成立していませんので、elseの後に続く、print() が実行されています。

おわりに

今回は、比較演算子と論理演算子を確認した後、条件文「if文」「if-else文」「if-elif-else文」を確認しました。

↓Python試しに勉強してみてはいかがでしょうか?5回分無料のようです↓

↓プログラミング未経験者が転職まで考えるなら↓

-Python

© 2024 micheyの雑記帳