比較演算子と論理演算子

Python学習【365日チャレンジ!】33日目のマスターU(@Udemy11)です。

プログラミングって、演算子の書き方も数学で学習する内容と違うところがありますが、なんとなく意味合いがわかるようにはなっています。

とはいえ、年を取ると記憶力が鈍るのか、なかなか憶えられなくなるんですよね。

昨日の復習

昨日は、Pythonistaのデバック機能を紹介しました。
Breakpointを設定して、実行すれば、Debugを選択できました。

あとは、【次の行を実行ボタン】をタップすれば、プログラムが進んでいきます。

Python Debug

出力が完了すれば、コンソールが表示されました。

まだ、長いプログラムは書いていないので、デバッグもすぐに終わりますが、どのようにプログラムが実行されるかわかるので、理解度が深まります。

今日は、比較演算子と論理演算子を学習します。

数学にも使われる演算子

演算子

Pythonで使う演算子には、数学でおなじみの【+】【-】などの算術演算子や値を比較する比較演算子、条件を判断する論理演算子があり、今回は、比較演算子と論理演算子を学習します。

リアルな数学で使う記号はそのままPythonで使えるものと使えないものがあります。

日本語入力ソフトのATOKやGoogle日本語入力では普通に変換できますが、これは、表記だけを目的として表示しているだけなので、Pythonなどのプログラミング言語では使用できません。

プログラミング言語の基本は、

  • あいまいさがない
  • 人がなんとなく理解できる
  • データ構造や処理ができる
  • PCの能力を最大限に活かす

ということなので、人間が理解できる処理を極力シンプルにして、処理を高速化することが求められています。

英語が世界の共通語になっているのは、シンプルでわかりやすいからというのと同じで、Pythonもシンプルでわかりやすいからこそ注目されている言語になっているんですね。

比較演算子

比較演算子は、等しい、異なる、小さい、大きいを判断する記号です。

a = 1
b = 1
 
# a が b と等しい
a == b

一つだけ【=】を一つだけ記載するのは、変数の代入で使われているので、比較演算子として使う場合は2つ並べて使います。

# a が b と異なる
a != b

等しくないとき、つまり異なる場合は、感嘆符とイコールをつなげて表します。

# a が b より小さい
a < b
 
# a が b より大きい
a > b

大小を比較するときは、リアル数がと同じように、>や<を使います。

# a が b 以下
a < b
 
# a が b 以上
a >= b

以上、以下については、一つの文字で表現することができないため、後ろにイコールをつけて表します。

これらの条件が満たされるとき(真のとき)、Pythonから【True】が返され、if文などを使っていれば、次の行を実行することになります。

a = 1
b = 1
print(a == b)
if a == b:
    print('equal')

出力結果

True
equal

最初の比較演算子(==)で出力してみると、1つ目の出力は条件を満たしているので、Trueが出力され、2つ目の出力はequalが出力されます。

条件が満たされない場合は【False】が返されるので、その時点でif文が終了します。

論理演算子

理論演算子は、条件を判断して真か偽かを判断しますが、代表的なものとして、【かつ】と【または】で使われる【and】と【or】があります。

a = 1
b = 1
 
# a も b も条件を満たす場合True
a > 0 and b > 0
 
# a か b が条件を満たす場合True
a > 0 or b > 0

andは、a かつ b のとき、Trueを返します。
andを使う場合と使わない場合のprint出力を比較してみました。

a = 1
b = 1
 
#andを使う場合
if a > 0 and b > 0:
    print('a and b is plus')
 
#andを使わない場合
if a > 0:
    if b > 0:
        print('a and b are plus')

andを使わなければ、コードは3行必要ですが、andを使えば2行に収まります。

つづいて、orを使ったprint出力をみてみましょう。

a = 1
b = 1
#orを使う場合
if a > 0 or b > 0:
    print('a or b is minus')
 
#orを使わない場合1
if a > 0:
    print('a or b is minus')
else:
    if b > 0:
        print('a or b is minus')
 
#orを使わない場合2
if a > 0:
    print('a or b is minus')
elif b > 0:
    print('a or b is minus')

もちろんandを使うほうが短いコードですむので、andを使うほうがいいのですが、使わなくても同じ結果を出力するためのコードを書くことができます。

最初にプログラミング言語の基本で紹介していますが、PCの能力を最大限に活かすためには、コードをよりシンプルにすることが大切なので、コードを短くできる方法を知っておくことは非常に重要です。

知識は経験の積み重ね

記憶は経験の積み重ね

Udemyの講座をたくさん受講していますが、実際に受講して身についているものってかなり限られてしまいます。

これはUdemyに限らず、リアルな講座でも学校の勉強でも同じで、どれだけ回数を重ねているか、何度も復習しているかが大きく関係しています。

何度も繰り返して学習したことは、記憶の固定化によって、長期記憶に保存されますが、1度や2度の学習では、忘れてしまう短期記憶にしか残りません。

パソコンで言うところのメモリとストレージの関係ですね。

PCの場合は、簡単にストレージに保存できますが、人間の場合は、何度も書き込まないと、メモリのようにすぐに消されてしまうわけです。

復習をしっかりと習慣づけて、記憶の固定化を図りましょう!

それでは、明日もGood Python!