Python × 入門 | #06 TrueとFalseを使おう

数値と文字列を扱えるようになったので、次は「正しいかどうか」を判定してみましょう。Pythonでは比較の結果は TrueFalse のどちらかになります。

この真偽値は、次の単元で学ぶ if 文の土台になります。まずは比較演算子で結果がどう変わるかを、ブロックで確かめます。

真偽値と比較演算子

まずはPycoBlocksを開こう

下のPycoBlocksで直接作業するか、別タブで開き、生成されるPythonコードを見ながら進めてください。今回は「条件」カテゴリの比較ブロックを使います。

True / False とは何か

比較の結果は必ず真偽値になります。条件が成り立つなら True、成り立たないなら False です。

print(5 < 10)
print(10 < 5)

1行目は True、2行目は False になります。数式の結果ではなく、判定結果が出てくる点がポイントです。

用語 意味
真偽値(bool型) TrueFalse のどちらかをとる値。比較や条件判定に使う 5 < 10True
比較演算子 2つの値を比べて True/False を返す演算子 == != < > <= >=
bool型リテラル Pythonで直接書ける真偽値の定数。先頭が大文字 TrueFalse

ステップ1:5 < 10 を判定しよう

まずは固定値で比較してみましょう。5 < 10 は成り立つので True が表示されます。

ブロック例
print(5 < 10)

ステップ2:変数と比較を組み合わせよう

次は変数を使います。値を入れたあとで a == 7 を判定すると、変数を使った条件判定の形が見えてきます。

ブロック例
a = 7
print(a == 7)

== は「等しいか」を調べる比較演算子です。代入の = と役割が違うので混同しないようにしましょう。

ステップ3:Trueリテラルと比較結果を並べてみよう

True を直接表示することもできますし、比較式の結果を表示することもできます。両方並べると違いが理解しやすくなります。

ブロック例
print(True)
print(1 == 2)

コーディングモードで書いてみよう

よく使う比較演算子は次の6つです。<, <=, >, >=, ==, !=。どれも結果は真偽値になります。

x = 8
print(x >= 8)   # True
print(x != 8)   # False

この結果をそのまま if に渡すと、条件分岐が書けます。次の単元に直結する重要な感覚です。

type():値の型を調べる

type() を使うと、値がどの型(整数・小数・文字列・真偽値)かを確認できます。

print(type(42))       # <class 'int'>
print(type(3.14))     # <class 'float'>
print(type("hello"))  # <class 'str'>
print(type(True))     # <class 'bool'>

演習課題

課題6-1:6つの比較演算子をすべて試してみよう

a = 70b = 70 として、==!=<><=>= の6種類すべての比較結果を表示してください。

▶ 模範解答と解説を見る

ブロックの組み合わせ例:

ブロック例
a = 70
b = 70
print("a == b:", a == b)   # True
print("a != b:", a != b)   # False
print("a  < b:", a  < b)   # False
print("a  > b:", a  > b)   # False
print("a <= b:", a <= b)   # True
print("a >= b:", a >= b)   # True

解説: 同じ値(70 == 70)で6種類の演算子を試すと、==<=>= だけが True になります。演算子の意味を「値を変えながら確認する」のが理解への近道です。

課題6-2:入力した数が偶数か奇数かを判定しよう

整数を入力し、「偶数かどうか」の結果を True または False で表示してください。%(余り)演算子を使います。

▶ 模範解答と解説を見る

ブロックの組み合わせ例:

ブロック例
n = int(input("整数を入力してください"))
print("偶数?:", n % 2 == 0)

解説: n % 2 == 0 は「2で割った余りが0かどうか」という比較式です。この結果が直接 TrueFalse になります。if文で使う比較式は、単独でも値として扱えます。

課題6-3:3辺の長さが三角形を作れるか判定しよう

3辺の長さを変数に入れ、三角形の条件(三角不等式:どの1辺も他の2辺の和より小さい)をそれぞれ True/False で表示してください。

▶ 模範解答と解説を見る

ブロックの組み合わせ例:

ブロック例
a = 3
b = 4
c = 5
print("a < b+c:", a < b + c)  # True
print("b < a+c:", b < a + c)  # True
print("c < a+b:", c < a + b)  # True

解説: 三角形が成立するには3条件すべてが True でなければなりません。たとえば a=1, b=1, c=10 にすると一部が False になります。次の「and」の章で、3条件を1行で判定する方法を学びます。

課題6-4:閏年の第1条件を確かめよう

year = 2024 として、「4の倍数かどうか」と「100の倍数かどうか」をそれぞれ True/False で表示してください。% を使います。

▶ 模範解答と解説を見る

ブロックの組み合わせ例:

ブロック例
year = 2024
print("4の倍数?:", year % 4 == 0)
print("100の倍数?:", year % 100 == 0)

解説: 閏年の完全な条件は「4の倍数 かつ 100の倍数ではない、または 400の倍数」です。今回は最初の2条件だけを確認しました。andornot を学ぶ次章で完全な閏年判定を実装します。

課題6-5:文字列の比較と型の比較を試そう

①文字列 "abc""abd"< で比較して結果を表示してください(辞書順比較)。②整数 1 と文字列 "1"== で比較してください。③type(42)type(3.14) の結果を表示してください。

▶ 模範解答と解説を見る
print("abc" < "abd")      # True(辞書順で"c" < "d")
print(1 == "1")          # False(型が違う)
print(type(42))          # <class 'int'>
print(type(3.14))        # <class 'float'>

解説: 文字列の比較は辞書順(アルファベット順)で行われます。1 == "1"False(整数と文字列は型が違うため)。type() で変数の型を確認できます。型の違いによるバグはプログラミングでよくあるミスです。

まとめ

  • 比較式の結果は True または False になります
  • == は比較、= は代入で役割が違います
  • 比較結果は次の単元の if 文でそのまま使えます
  • TrueFalse は最初の文字が大文字のPython予約語(true/false と書くとエラーになる)

次は、比較の結果を使って処理を分ける if 文を学びます。→ Python × 入門 | #07 条件分岐をマスターしよう

PAGE TOP