第8回|Pythonの比較演算子と論理演算子入門:条件式とTrue/Falseの基本 | はじめてのPython

当サイトでは、コンテンツの一部に広告を掲載しています。
第8回|Pythonの比較演算子と論理演算子入門:条件式とTrue/Falseの基本 | はじめてのPython

はじめてのPython | 第8回

目次

1. はじめに

この回では、条件式を書くときに使う比較演算子と論理演算子を学びます。if 文では、条件が成り立つかどうかを判定する必要があります。

その判定に使うのが、== != < <= > >=and or not です。これらを使うと、値を比べたり、複数の条件を組み合わせたりできます。

2. この回で学ぶこと

  • == != の意味
  • < <= > >= の意味
  • 比較結果として TrueFalse が返ること
  • and or not の使い方
  • 条件式を組み合わせる基本

3. 概念の説明

比較演算子は、2つの値を比べるための記号です。比較した結果は、True または False になります。

  • True: 条件が成り立つ
  • False: 条件が成り立たない

たとえば、次のように使います。

print(5 == 5)
print(5 != 3)
print(10 < 20)
print(10 >= 15)

この結果は、上から順に True True True False です。

それぞれの意味は次のとおりです。

  • ==: 左右が等しい
  • !=: 左右が等しくない
  • <: 左が右より小さい
  • <=: 左が右以下
  • >: 左が右より大きい
  • >=: 左が右以上

次に、論理演算子を使うと複数の条件をまとめて書けます。

  • and: 両方の条件が True のときだけ True
  • or: どちらか一方でも True なら True
  • not: TrueFalse を反転する

たとえば次のように書けます。

print(10 >= 0 and 10 <= 100)
print(5 < 3 or 8 < 10)
print(not 5 == 5)

4. サンプルコード

次のコードを見てください。

age = 20
score = 75

print(age >= 18)
print(score == 100)
print(score != 0)

print(age >= 18 and score >= 60)
print(age < 18 or score >= 60)
print(not score == 100)

このコードでは、比較演算子と論理演算子の結果をそのまま表示しています。

5. 実行手順

まず、operators.py というファイルを作ります。

touch operators.py

operators.py をエディターで開き、次のコードを書いて保存します。

age = 20
score = 75

print(age >= 18)
print(score == 100)
print(score != 0)

print(age >= 18 and score >= 60)
print(age < 18 or score >= 60)
print(not score == 100)

保存したら、ターミナルで次のコマンドを実行します。

python3 operators.py

実行結果は次のようになります。

True
False
True
True
True
True

agescore の値を変更して、結果がどう変わるか確認してください。

6. コードの読み方

  • age >= 18 は、age が 18 以上かどうかを調べています。
  • この例では age は 20 なので、結果は True です。
  • score == 100 は、score が 100 と等しいかどうかを調べています。
  • score は 75 なので、結果は False です。
  • score != 0 は、score が 0 ではないかどうかを調べています。
  • 75 は 0 ではないので True になります。
  • age >= 18 and score >= 60 は、2つの条件がどちらも成り立つかを調べています。
  • この例では両方とも True なので、全体も True です。
  • age < 18 or score >= 60 は、どちらか一方が成り立つかを調べています。
  • age < 18False ですが、score >= 60True なので、全体は True です。
  • not score == 100 は、score == 100 の結果を反転しています。
  • もとの結果が False なので、not を付けると True になります。

7. 初学者がつまずきやすい点

  • = は代入、== は比較なので意味が違う
  • 比較演算子の結果は数値ではなく True または False
  • and は両方が成り立つ必要がある
  • or は片方だけ成り立っても True になる
  • not は直後の条件結果を反転する

特に、if score = 100: のように = を使う書き方はできません。比較したいときは == を使います。

8. よくあるエラー

1つ目は、=== を混同した場合です。

SyntaxError: invalid syntax

たとえば次のような書き方です。

score = 75

if score = 75:
    print("同じです")

2つ目は、andor を使うときに左右の条件を書いていない場合です。

SyntaxError: invalid syntax

たとえば次のような書き方です。

print(10 > 5 and)

3つ目は、文字列と数値を比較して意図しない結果になる場合です。

age = "20"
print(age == 20)

このコードはエラーにはなりませんが、結果は False です。左側は文字列の "20"、右側は数値の 20 で、型が違うためです。

9. 練習用コード

次のコードを practice_operators.py として保存して実行してください。

price = 1200
point = 300

print(price > 1000)
print(point == 300)
print(price <= 800)

print(price > 1000 and point >= 300)
print(price < 1000 or point >= 300)
print(not point == 0)

実行したあとで、それぞれの行が True になるか False になるかを先に予想してください。

余裕があれば、if 文と組み合わせて、条件によってメッセージを表示する形に変えてみてください。

10. この回で理解しておくこと

  • 比較演算子は値を比べて True または False を返す
  • == は等しい、!= は等しくないことを表す
  • < <= > >= は大小関係を表す
  • and or not を使うと条件を組み合わせられる
  • === は役割が異なる

11. まとめ

今回は、比較演算子と論理演算子の基本を確認しました。

条件式が正しく書けるようになると、if 文や while 文で必要な判定を正確に書けるようになります。

TrueFalse の結果を意識しながら読むと、条件式の意味を理解しやすくなります。

12. 次回予告

次回は、for 文を使って繰り返し処理を学びます。同じ処理を決まった回数だけ実行する基本を確認します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

Created by UNIX Cafe

目次