さて
Pythonに関わらず制御構文は
プログラミングの基本になり
if文はその中でも最もよく使うものです
日本語で表すと
もし(ある条件に合致したら)
ああして
もし(ある条件に合致したら)
こうして
それではなかったら
こうする
こんな感じです
if文の基本構文は以下になります
if 条件1:
結果1
elif 条件2:
結果2
else:
その他結果
結果の部分はインデントといって
行の始めをスペース4つやタブで後ろに下げておく
必要があり、ない場合はエラーになります
ifの条件に合致したら結果1を返し
elifの条件に合致したら結果2を
当てはまらなけらばその他結果を返します
elifは条件の数だけ増やすこともでき
無くても実行できます
else文の必要が無ければ省略できます
次のような使い方をします
条件文は真偽値をとる文で指定することができます
例えば文字列の値の一致、不一致
数値の比較での大小や一致、不一致
関数の戻り値
前述の文字列判定を使うと
文字の有無が真偽値で返ってくるので条件文に使えます
演算子について
if文に合わせて使われるのが
比較演算
論理演算
です
まずは比較演算子から
値を比較してその結果を返す為に使います
この場合はオブジェクトが持っている値を比較しています
条件に合致した場合はTrue,そうでない場合はFalseを返します
オブジェクトが同一かどうかの比較は
次に論理演算です
この場合は条件の組み合わせによってもたらされた結果が
正しいかどうかを判定します
論理積
左辺と右辺の式を双方を評価して
掛け合わせたものが全体の評価になります
実際のパターンは4通りで全体の評価は以下の通りになります
使い方としてはこのように
左辺、右辺の式を満たしていれば共に真の値が返り
両辺の値も真になります
論理和
論理和はどちらかが真の場合に真になります
これも4パターンあり評価は以下の通り
使い方としてはこのように
否定
not演算子をつけると式の評価が逆になります
以下のようになります
if文の条件を構成する際には
最適な演算子を使って
判定を行うようにします
演算子の優先度
演算子には優先度が有り
優先度を変更するには括弧 ( ) でくくります
真偽値の判定の際も括弧でくくることにより判定条件を
変えることができるのでうまく使いわけましょう
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 == b | bがaに等しい |
| != | a != b | bがaに等しくない |
| > | a > b | bよりaが大きい |
| >= | a >= b | bよりaが大きいか等しい |
| < | a < b | bよりaが小さい |
| <= | a <= b | bよりaが小さいか等しい |
値を比較してその結果を返す為に使います
この場合はオブジェクトが持っている値を比較しています
条件に合致した場合はTrue,そうでない場合はFalseを返します
オブジェクトが同一かどうかの比較は
左辺 is 右辺
同一でないことを調べる場合は
左辺 is not 右辺とします
次に論理演算です
| 演算子 | 記述例 | 意味 |
|---|---|---|
| and | a and b | aとbが共に真の場合に真 |
| or | a or b | aかbの少なくとも1つが真の場合に真 |
| not | not a | aが真の時に偽、偽の時に真 |
この場合は条件の組み合わせによってもたらされた結果が
正しいかどうかを判定します
論理積
左辺と右辺の式を双方を評価して
掛け合わせたものが全体の評価になります
実際のパターンは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 (優先順位が低い)足し算よりも掛け算の方が優先度が高いのは数式と一緒です
優先度を変更するには括弧 ( ) でくくります
真偽値の判定の際も括弧でくくることにより判定条件を
変えることができるのでうまく使いわけましょう
