序章

ブールデータ型は、TrueまたはFalseの2つの値のいずれかになります。 プログラミングではブール値を使用して、比較を行い、特定のプログラムの制御フローを決定します。

ブール値は、数学の論理ブランチに関連付けられている真理値を表します。これは、コンピューターサイエンスのアルゴリズムに情報を提供します。 数学者のジョージブールにちなんで名付けられたブールという単語は、常に大文字のBで始まります。 その価値 TrueFalse また、Pythonの特別な値であるため、常に大文字のTとFがそれぞれ使用されます。

このチュートリアルでは、Pythonでブール値がどのように機能するかを理解するために必要なことを確認し、比較演算子、論理演算子、および真理値表について説明します。

前提条件

Python 3をインストールし、コンピューターまたはサーバーにプログラミング環境をセットアップする必要があります。 プログラミング環境をセットアップしていない場合は、ローカルプログラミング環境またはサーバー上のプログラミング環境のインストールおよびセットアップガイドを参照して、オペレーティングに適したものにすることができます。システム(Ubuntu、CentOS、Debianなど)

比較演算子

プログラミングでは、比較演算子を使用して値を比較し、TrueまたはFalseの単一のブール値まで評価します。

情報:このチュートリアルのサンプルコードに従うには、ローカルシステムでPythonインタラクティブシェルを開いて、 python3 指図。 次に、例の後に追加して、例をコピー、貼り付け、または編集できます。 >>> 促す。

次の表は、ブール比較演算子です。

オペレーター その意味
== に等しい
!= 等しくない
< 未満
> より大きい
<= 以下
>= 以上

これらの演算子がどのように機能するかを理解するために、Pythonプログラムで2つの整数を2つの変数に割り当てましょう。

x = 5
y = 8

この例では、 x の値があります 5、それは未満です y の値があります 8.

これらの2つの変数とそれに関連する値を使用して、上の表の演算子を見ていきましょう。 このプログラムでは、各比較演算子がTrueまたはFalseのどちらに評価されるかを出力するようにPythonに要求します。 私たちや他の人間がこの出力をよりよく理解できるように、Pythonに文字列を出力して、評価内容を表示させます。

x = 5
y = 8

print("x == y:", x == y)
print("x != y:", x != y)
print("x < y:", x < y)
print("x > y:", x > y)
print("x <= y:", x <= y)
print("x >= y:", x >= y)

このプログラムを実行すると、次の出力が表示されます。

Output
x == y: False x != y: True x < y: True x > y: False x <= y: True x >= y: False

数理論理学に従って、上記の各式で、Pythonは次のことを評価しました。

  • 5です(x)8に等しい(y)? False
  • 5は8と等しくありませんか? True
  • 5は8未満ですか? True
  • 5は8より大きいですか? False
  • 5は8以下ですか? True
  • 5は8以上ですか? False

ここでは整数を使用しましたが、float値で置き換えることができます。

文字列はブール演算子でも使用できます。 追加の文字列メソッドを使用しない限り、大文字と小文字が区別されます。

文字列を実際にブール演算子と比較する方法は次のとおりです。

Sammy = "Sammy"
sammy = "sammy"

print("Sammy == sammy: ", Sammy == sammy)

上記のプログラムの出力は次のようになります。

Output
Sammy == sammy: False

文字列 "Sammy" 上記は文字列と等しくありません "sammy"、それらは同一ではないため。 1つは大文字で始まります S もう1つは小文字です s. ただし、次の値が割り当てられている別の変数を追加すると、 "Sammy"、その後、それらは等しいと評価されます:

Sammy = "Sammy"
sammy = "sammy"
also_Sammy = "Sammy"

print("Sammy == sammy: ", Sammy == sammy)
print("Sammy == also_Sammy", Sammy == also_Sammy)

上記のプログラムを実行すると、次の出力が得られます。 これは、文字列が完全に同一である限り(大文字と小文字を含む)、ブール論理の観点からは等しいと評価されることを示しています。

Output
Sammy == sammy: False Sammy == also_Sammy: True

次のような他の比較演算子を使用することもできます >< 2つの文字列を比較します。 Pythonは、文字のASCII値を使用して、これらの文字列を辞書式で比較します。

比較演算子を使用してブール値を評価することもできます。

t = True
f = False

print("t != f: ", t != f)

上記のプログラムは以下を返します。

Output
t != f: True

上記の出力に示されているように、私たちが書いたコードはそれを評価しました True と等しくない False.

2つの演算子の違いに注意してください ===.

x = y	# Sets x equal to y
x == y	# Evaluates whether x is equal to y

最初、 = は代入演算子であり、ある値を別の値と等しく設定します。 二番目、 == 2つの値が等しいかどうかを評価する比較演算子です。

論理演算子

値を比較するために使用される3つの論理演算子があります。 式をブール値まで評価し、いずれかを返します True また False. これらの演算子は and, or、 と not およびは、以下の表で定義されています。

オペレーター その意味
and 両方が真の場合は真 x and y
or 少なくとも1つが真の場合は真 x or y
not falseの場合にのみtrue not x

論理演算子は通常、2つ以上の式が真であるかどうかを評価するために使用されます。 たとえば、成績がおよびに合格しているかどうかを判断するために使用でき、学生はコースに登録されています。 これらの両方のケースに当てはまる場合、学生にはシステムの成績が割り当てられます。 もう1つの例は、ユーザーが過去6か月間にストアクレジットまたはを購入したかどうかに基づいて、ユーザーがオンラインショップの有効なアクティブ顧客であるかどうかを判断することです。

論理演算子がどのように機能するかを理解するために、次の3つの式を評価してみましょう。

print((9 > 7) and (2 < 4))	# Both original expressions are True
print((8 == 8) or (6 != 6))	# One original expression is True
print(not(3 <= 1))			# The original expression is False
Output
True True True

最初のケースでは、 print((9 > 7) and (2 < 4))、 両方 9 > 72 < 4 以来、Trueと評価されます and 演算子が使用されていました。

2番目のケースでは、 print((8 == 8) or (6 != 6))、 以来 8 == 8 Trueと評価されたが、違いはなかった 6 != 6 Falseと評価されるのは、 or 演算子が使用されました。 使用した場合 and 演算子、これはFalseと評価されます。

3番目のケースでは、 print(not(3 <= 1))not 演算子はFalse値を否定します 3 <=1 戻り値。

整数の代わりにfloatを使用して、False評価を目指しましょう。

print((-0.2 > 1.4) and (0.8 < 3.1))	# One original expression is False
print((7.5 == 8.9) or (9.2 != 9.2))	# Both original expressions are False		
print(not(-5.7 <= 0.3))				# The original expression is True

上記の例では、

  • and 少なくとも1つのFalse式がFalseと評価される必要があります。
  • or 両方の式をFalseと評価する必要があります。
  • not 新しい式がFalseと評価されるには、内部式がTrueである必要があります。

上記の結果が不明確に思われる場合は、以下の真理値表を調べて、最新情報を入手します。

を使用して複合ステートメントを作成することもできます and, or、 と not:

not((-0.2 > 1.4) and ((0.8 < 3.1) or (0.1 == 0.1)))

最初に最も内側の式を見てみましょう。 (0.8 < 3.1) or (0.1 == 0.1). 両方の数学ステートメントがTrueであるため、この式はTrueと評価されます。

これで、戻り値を取得できます True そしてそれを次の内部表現と組み合わせます: (-0.2 > 1.4) and (True). この例は False 数学的なステートメントのため -0.2 > 1.4 Falseであり、 (False) and (True) Falseを返します。

最後に、外側の式があります。 not(False)、これはTrueと評価されるため、このステートメントを出力した場合の最終的な戻り値は次のとおりです。

Output
True

論理演算子 and, or、 と not 式を評価し、ブール値を返します。

真理値表

数学の論理ブランチについて学ぶことはたくさんありますが、プログラミング時のアルゴリズム的思考を改善するために、その一部を選択的に学ぶことができます。

以下は、比較演算子の真理値表です ==、および各論理演算子 and, or、 と not. それらを推論することができるかもしれませんが、それはあなたのプログラミングの意思決定プロセスをより速くすることができるので、それらを暗記するために働くことも役立つかもしれません。

==真理値表

x == y 戻り値
==
== 誤り 誤り
誤り == 誤り
誤り == 誤り

AND真理値表

x y 戻り値
誤り 誤り
誤り 誤り
誤り 誤り 誤り

または真理値表

x また y 戻り値
また
また 誤り
誤り また
誤り また 誤り 誤り

真理値表ではありません

いいえ x 戻り値
いいえ 誤り
いいえ 誤り

真理値表は、論理で使用される一般的な数表であり、コンピュータープログラミングでアルゴリズム(命令)を作成するときに覚えたり覚えたりするのに役立ちます。

フロー制御にブール演算子を使用する

フロー制御ステートメントの形式でプログラムのストリームと結果を制御するには、条件の後にを使用できます。

condition は、ブール値TrueまたはFalseまで評価され、プログラムで決定が行われるポイントを示します。 つまり、条件は、何かがTrueまたはFalseと評価されるかどうかを示します。

は、条件に従い、プログラムの結果を指示するコードのブロックです。 つまり、これはこれを行う構造の一部です。 x 真であるなら、これを実行してください。」

以下のコードブロックは、Pythonプログラムのフローを制御するために条件付きステートメントと連携して動作する比較演算子の例を示しています。

if grade >= 65:					# Condition
    print("Passing grade")		# Clause

else:
    print("Failing grade")

このプログラムは、各学生の成績が合格か不合格かを評価します。 成績が83の生徒の場合、最初のステートメントは次のように評価されます。 True、およびの印刷ステートメント Passing grade トリガーされます。 成績が59の生徒の場合、最初のステートメントは次のように評価されます。 False、したがって、プログラムは次に進み、に関連付けられたprintステートメントを実行します。 else 表現: Failing grade.

PythonのすべてのオブジェクトはTrueまたはFalseに評価できるため、PEP8スタイルガイドでは値を次のように比較しないことをお勧めします。 True また False 読みにくく、予期しないブール値を返すことが多いためです。 つまり、回避を使用する必要があります if sammy == True: あなたのプログラムで。 代わりに、比較してください sammy ブール値を返す別の非ブール値に変換します。

ブール演算子は、フロー制御ステートメントを介してプログラムの最終的な結果を決定するために使用できる条件を示します。

結論

このチュートリアルでは、ブール型に属する比較演算子と論理演算子、および真理値表と、プログラムフロー制御にブールを使用する方法について説明しました。

他のデータ型について詳しくは、「データ型について」チュートリアルをご覧ください。また、条件文については、「条件文の書き方」チュートリアルをご覧ください。

また、無料のPython eBook、 Pythonでコーディングする方法もあり、初心者とクイックリファレンスが必要な人の両方をサポートできます。