6章では、Pythonにおける真理値(bool型)と論理演算子、比較演算子について解説します。
True、Falseを返す真理値とAND、OR、NOTを表現する論理演算子、『<』や『>』などの比較演算子は「if文などの条件式」によく使われます。
複雑なプログラムを作る上では必ず条件式が必要となるので、マスターしましょう
本連載講座【Python 基礎編】では、「プログラミング未経験の方」が挫折せずにPythonの基礎を学ぶことができます。
プログラミングを始めて学ぶ方が理解できるよう、丁寧に解説しています。
さらに、学んだ内容を身につけるための演習問題も用意しています。
・Pythonを挫折せずに学習したい
・無料でPythonを確実に習得したい
このような考えを持っている方は、Tech Teacherが運営する【Python 基礎編】を用いて、Pythonの学習をすることをお勧めします!
<目次>
1章:Pythonの特徴・概要
2章:環境構築と基本操作
3章:出力関数print()
4章:数値の型(int、float)と算術演算子
5章:文字列の操作(len・抽出・結合)
6章:真偽値(True・False)・論理演算(AND、OR、NOT)・比較演算子
7章:変数
8章:if文による条件分岐
9章:リストと辞書
10章:for・whileによる繰り返し(ループ)処理
11章:関数の作り方・使い方
12章:クラスとモジュール
真理値(bool型)とは
真理値(bool型)は真偽を表す型で、TrueまたはFalseのどちらかの値を取ります。
真 | True |
---|---|
偽 | False |
type()で型を確認してみましょう。
print(type(True))
print(type(False))
<class 'bool'>
<class 'bool'>
また、PythonではTrueはint型の1、Falseはint型の0とそれぞれ等価です。
# print関数の中をコンマで区切ると空白1つ分空けて横並びに表示される
print('True:', int(True))
print('False:', int(False))
print(3 + True)
print(3 + False)
True: 1
False: 0
4
3
論理演算子(ブール演算子)
次に論理演算子について解説します。
論理演算子はbool型に対して用いる演算子で、以下の3種類が存在します。
論理演算子 | 説明 |
---|---|
and | 論理積 |
or | 論理和 |
not | 否定 |
『and』『or』『not』はそれぞれ論理積、論理和、否定とも呼ばれます。
数学で論理と集合を学んだことがある方はイメージがつきやすいのではないでしょうか。
ではそれぞれの論理演算子について詳しく見ていきましょう。
論理積(and)
論理積(and)は、2つの値がどちらもTrueのときのみTrueを返します。
print(False and False)
print(False and True)
print(True and False)
print(True and True)
False
False
False
True
2つの真理値A, Bに対して、A and Bは以下のようになります。(真理値表)
論理和(or)
論理和(or)は、2つの値のうち少なくとも1つがTrueのときにTrueを返します。
print(False or False)
print(False or True)
print(True or False)
print(True or True)
False
True
True
True
2つの真理値A, Bに対して、A or Bは以下のようになります。
否定(not)
否定(not)は、値がTrueならFalse、FalseならTrueを返します。
print(not False)
print(not True)
True
False
真理値Aに対してnot Aは以下のようになります。
比較演算子
比較演算子とは『<』や『>』などの、2つの値を比較するための演算子です。
比較演算子の種類と意味
比較演算子の式は、真の場合にTrue、偽の場合にFalseを返します。
Pythonの主な比較演算子は以下の通りです。
比較演算子 | 説明 |
---|---|
a == b | aとbは等しい |
a != b | aとbは等しくない |
a < b | aはbより小さい |
a > b | aはbより大きい |
a <= b | aはb以下である |
a >= b | aはb以上である |
a in b | aはbに含まれる |
a not in b | aはbに含まれない |
それぞれ具体例で確認してみましょう。
『==』『!=』
『==』は数学におけるイコールと同じく、左右の値が等しい場合にTrueを返します。
一方『!=』は左右の値が等しくない場合にTrueを返します。
print(2 == 2) # True
print(2 == 3) # False
print('Hello' == 'hello') # False
print('Hello' != 'World') # True
print('abc' != 'abc') # False
print(2 < 3) # True
print(3 < 2) # False
print(2 < 3) # True
print(2 <= 3) # True
# 『>』や『>=』は『<』や『<=』の向きを逆にしただけ
print(3 > 2) # True
文字列の比較において大文字と小文字は区別されるという点に気を付けましょう。
『<』『>』『<=』『>=』
『<』『>』『<=』『>=』の4つの演算子の意味は数学における不等号と同じです。
まずは数値の比較を見てみましょう。
print(2 < 3) # True
print(3 < 2) # False
print(2 < 3) # True
print(2 <= 3) # True
# 『>』や『>=』は『<』や『<=』の向きを逆にしただけ
print(3 > 2) # True
True
False
True
True
True
文字列の比較も可能ですが、大小関係が分かりづらい場合があるので注意が必要です。
Pythonにおいて各文字の大小はUnicodeに基づいて定められ、文字列は辞書順で大小が決まります。
またアルファベットでは大文字<小文字となることに注意しましょう。
# 辞書順で大小が決まる
print('a' < 'b') # True
print('abcde' > 'abcdf') # False
# A < Z < a < zの関係
print('A' < 'a') # True
print('python' < 'Python') # False
print('A' < 'b') # True
True
False
True
False
True
『in』『not in』
『in』『not in』は、要素が含まれるかどうかを判定します。
例えばa in b
はbの中にaが含まれるときにTrueを返します。
『not in』は『in』の否定です。
print('bcd' in 'abcde')
# aceはabcdeに連続して含まれていないのでFalse
print('ace' in 'abcde')
print('Hello' not in 'Hello, World!')
True
False
False
論理演算子との組み合わせ
比較演算子は真理値を返すので、比較演算子の式に対して論理演算を行うことができます。
print('abc' < 'bcd' and 3 < 2)
False
上の例では、左の比較の式がTrue、右の比較の式がFalseを返すので、それらに対する論理積はFalseとなります。
他の例も以下に示しておきます。
print(3 <= 2 or 4 < 5) # False or True = True
print(not 2 <= 3)
True
False
『Tech Teacher』3つの魅力
魅力1. オーダーメイドのカリキュラム
『Tech Teacher』では、決められたカリキュラムがなくオーダーメイドでカリキュラムを組んでいます。「質問だけしたい」「相談相手が欲しい」等のご要望も実現できます。
魅力2. 担当教師によるマンツーマン指導
Tech Teacherでは、完全マンツーマン指導で目標達成までサポートします。
東京大学を始めとする難関大学の理系学生・院生・博士の教師がが1対1で、丁寧に指導しています。
そのため、理解できない箇所は何度も分かるまで説明を受けることができます。
魅力3. 3,960円/30分で必要な分だけ受講
Tech Teacherでは、授業を受けた分だけ後払いの「従量課金制」を採用しているので、必要な分だけ授業を受講することができます。また、初期費用は入会金22,000円のみです。一般的なプログラミングスクールとは異なり、多額な初期費用がかからないため、気軽に学習を始めることができます。
まとめ
・魅力1. 担当教師によるマンツーマン指導
・魅力2. オーダーメイドのカリキュラム
・魅力3. 3,960円/30分で必要な分だけ受講
質問のみのお問い合わせも受け付けております。
6章の練習問題
以下の練習問題を解いてみましょう。
練習問題
問1. 以下の式がTrueとFalseのどちらと等しいかを答えてください。
(1) 5 > 3
(2) True and False
(3) 10 < 20 or ‘abc’ == ‘abcd’
(4) ‘apple’ < ‘banana’
(5) ‘datascience’ < ‘DataScience’
解答
(1) True
(2) False
(3) True
(4) True
(5) False
次の記事へ