ここでは自分の勉強の復習もかねて、何回かにわたって、Pythonの使い方をまとめていきます(全部で何回分になるかは不明)。紹介するPythonは、Python3(2ではない)。また、OSは、mac。また、jupyter notebookを使っていきます。
Contents
条件文とは
条件文(もしくは「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文」を確認しました。