さて
Pythonに関わらず制御構文は
プログラミングの基本になり
if文はその中でも最もよく使うものです

日本語で表すと
もし(ある条件に合致したら)
ああして
もし(ある条件に合致したら)
こうして
それではなかったら
  こうする

こんな感じです

if文の基本構文は以下になります

if  条件1:
結果1
elif 条件2:
結果2
else:
その他結果


結果の部分はインデントといって
行の始めをスペース4つやタブで後ろに下げておく
必要があり、ない場合はエラーになります

ifの条件に合致したら結果1を返し
elifの条件に合致したら結果2を
当てはまらなけらばその他結果を返します

elifは条件の数だけ増やすこともでき
無くても実行できます
else文の必要が無ければ省略できます

次のような使い方をします
JKmanager = 17
print("もし高校野球の女子マネージャーが%d歳だったら" % JKmanager)

if JKmanager < 20:
    print('未成年')
else:
    print('合法')
もし高校野球の女子マネージャーが17歳だったら
未成年

条件文は真偽値をとる文で指定することができます

例えば文字列の値の一致、不一致
数値の比較での大小や一致、不一致
関数の戻り値
ono = 'おのののか'
nono = 'の'
if nono in ono:
    print ('お' + nono * ono.count(nono) * 2 + 'か')
おののののののか

前述の文字列判定を使うと
文字の有無が真偽値で返ってくるので条件文に使えます


演算子について


if文に合わせて使われるのが
比較演算
論理演算

です

まずは比較演算子から

演算子記述例意味
==a == bbがaに等しい
!=a != bbがaに等しくない
>a > bbよりaが大きい
>=a >= bbよりaが大きいか等しい
<a < bbよりaが小さい
<=a <= bbよりaが小さいか等しい

値を比較してその結果を返す為に使います
この場合はオブジェクトが持っている値を比較しています
条件に合致した場合はTrue,そうでない場合はFalseを返します

オブジェクトが同一かどうかの比較は
左辺 is 右辺
同一でないことを調べる場合は
左辺 is not 右辺
とします

次に論理演算です

演算子記述例意味
anda and baとbが共に真の場合に真
ora or baかbの少なくとも1つが真の場合に真
notnot aaが真の時に偽、偽の時に真

この場合は条件の組み合わせによってもたらされた結果が
正しいかどうかを判定します

論理積

左辺と右辺の式を双方を評価して
掛け合わせたものが全体の評価になります
実際のパターンは4通りで全体の評価は以下の通りになります
左辺右辺全体の式

使い方としてはこのように
JKmanager = 18
if JKmanager > 17 and JKmanager < 20:
  print ("JKマネージャー%dはちょうど食べごろです" % JKmanager)
JKマネージャー18はちょうど食べごろです

左辺、右辺の式を満たしていれば共に真の値が返り
両辺の値も真になります


論理和


論理和はどちらかが真の場合に真になります
これも4パターンあり評価は以下の通り
左辺右辺全体の式

使い方としてはこのように
JKmanager = 18
JDmanager = 20
if JKmanager > 19 or JDmanager > 19:
  print ("JKマネージャー%d , JKマネージャー%dどっちも行けます" % (JKmanager,JDmanager) )
JKマネージャー18 , JKマネージャー20どっちも行けます

否定

not演算子をつけると式の評価が逆になります
左辺全体の式

以下のようになります
JKmanager = 18
if not JKmanager < 17:
  print ("JKマネージャー%dは17未満ではありません" % JKmanager)
JKマネージャー18は17未満ではありません


if文の条件を構成する際には
最適な演算子を使って
判定を行うようにします


演算子の優先度

演算子には優先度が有り


(優先順位が高い)
  符号を表す単項演算子の + と -  ~x
  **
  *  /  %  //
  +  -
  <<  >>
  &
  ^
  |
  <  <=  >  >=  ==  !=  <>  is  is not  in  not in
  not
  and
  or
(優先順位が低い)
足し算よりも掛け算の方が優先度が高いのは数式と一緒です

優先度を変更するには括弧 ( ) でくくります
真偽値の判定の際も括弧でくくることにより判定条件を
変えることができるのでうまく使いわけましょう