前書き

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

ブール値は、コンピューターサイエンスのアルゴリズムに情報を提供する数学の論理分岐に関連付けられている真理値を表します。 数学者のジョージブールにちなんで名付けられたブールという言葉は、常に大文字のBで始まります。 Pythonでは特別な値であるため、値「+ True 」と「 False +」も常に大文字のTとFになります。

このチュートリアルでは、ブール値の比較、論理演算子、真理値表など、ブール値の仕組みを理解するために必要な基本事項について説明します。

比較演算子

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

次の表は、ブール比較演算子を示しています。

Operator What it means

==

Equal to

!=

Not equal to

<

Less than

>

Greater than

Less than or equal to

>=

Greater than or equal to

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

x = 5
y = 8

この例では、「+ x 」の値は「+5」なので、「+ 8+」の値を持つ「+ y +」よりも小さいことがわかります。

これらの2つの変数とそれに関連する値を使用して、上の表の演算子を見てみましょう。 プログラムでは、各比較演算子がTrueまたはFalseのどちらに評価されるかを出力するようPythonに依頼します。 私たちや他の人間がこの出力をよりよく理解できるように、Pythonにhttps://www.digitalocean.com/community/tutorial_series/working-with-strings-in-python-3[string]を表示させて表示することもできます。評価対象。

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)
Outputx == y: False
x != y: True
x < y: True
x > y: False
x <= y: True
x >= y: False

上記の各式において、数学的な論理に従って、Pythonは以下を評価しました:

  • 5( + x +)は8( + y +)と等しいですか?

  • 5は8と等しくありませんか?

  • 5は8未満ですか?

  • 5は8よりも大きいですか?

  • 5は8以下ですか?

  • 5は8以下ではありませんか?

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

文字列はブール演算子でも使用できます。 追加のhttps://www.digitalocean.com/community/tutorials/an-introduction-to-string-methods-in-python-3#making-strings-upper-and-lower-を使用しない限り、大文字と小文字が区別されますcase [string method]。

実際に文字列を比較する方法を見ることができます。

Sammy = "Sammy"
sammy = "sammy"

print("Sammy == sammy: ", Sammy == sammy)
OutputSammy == 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)
OutputSammy == sammy:  False
Sammy == also_Sammy:  True

`> +`や ` <+`を含む他の比較演算子を使用して、2つの文字列を比較することもできます。 Pythonは、文字のASCII値を使用して、これらの文字列を辞書的に比較します。

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

t = True
f = False

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

上記のコードブロックは、「+ True」が「+ False」と等しくないことを評価しました。

2つの演算子 `+ = `と ` == +`の違いに注意してください。

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

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

論理演算子

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

Operator What it means What it looks like

and

True if both are true

x and y

or

True if at least one is true

x or y

not

True only if false

not x

論理演算子は通常、2つ以上の式が真であるかどうかを評価するために使用されます。 たとえば、成績が合格かどうか、および学生がコースに登録されているかどうかを判断するために使用できます。両方のケースが当てはまる場合、学生はシステムで成績を割り当てられます。 別の例として、ユーザーが過去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
OutputTrue
True
True

最初のケースでは、 + print((9> 7)and(2 <4))+、 `+ and + `演算子が使用されていました。

2番目の場合、 + print((8 == 8)or(6!= 6))++ 8 == 8 +`はTrueと評価されるため、 `+ 6! = 6 + `は、 + or + `演算子が使用されたためFalseと評価されます。 `+ and +`演算子を使用した場合、これはFalseと評価されます。

3番目の場合、「+ print(not(3 ⇐ 1))」、「 not 」演算子は、「 3 ⇐ 1 +」が返す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に評価される必要があり、

  • 新しい式がFalseと評価されるためには、 `+ not +`の内部式がTrueでなければなりません。

上記の結果が不明な場合は、以下のhttps://www.digitalocean.com/community/tutorials/understanding-boolean-logic-in-python-3#truth-tables[truth tables]を参照してください。スピードアップしましょう。

また、「+ and」、「+ or」、「+ not」を使用して複合ステートメントを記述することもできます。

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

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

これで、返された値 `+ True `を取得して、次の内部式である `(-0.2> 1.4)and(True)`と組み合わせることができます。 この例は、数学ステートメント「 -0.2> 1.4+」がFalseであり、「(False)and(True)」がFalseを返すため、「+ False +」を返します。

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

OutputTrue

論理演算子「+ and」、「+ or」、および「+ not」は式を評価し、ブール値を返します。

真理値表

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

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

==真理値表

x == y Returns

True

==

True

True

True

==

False

False

False

==

True

False

False

==

False

True

AND真理値表

x and y Returns

True

and

True

True

True

and

False

False

False

and

True

False

False

and

False

False

OR真理値表

x or y Returns

True

or

True

True

True

or

False

True

False

or

True

True

False

or

False

False

真理値表ではありません

not x Returns

not

True

False

not

False

True

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

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

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

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

  • clause は、 condition *に続き、プログラムの結果を指示するコードブロックです。 つまり、「これを行う」部分の構成です。「 `+ x +`がTrueの場合、これを行う。」

以下のコードブロックは、https://www.digitalocean.com/community/tutorials/how-to-write-conditional-statements-in-python-3-2 [条件文]と連携して動作する比較演算子の例を示していますPythonプログラムのフローを制御します。

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

else:
   print("Failing grade")

このプログラムは、各生徒の成績が合格か不合格かを評価します。 83年生の生徒の場合、最初のステートメントは「+ True 」と評価され、「 Passing grade 」の印刷ステートメントがトリガーされます。 学年が59の学生の場合、最初の文は ` False `に評価されるため、プログラムは ` else `式に関連付けられたprint文を実行します: ` Failing grade +`。

PythonのすべてのオブジェクトはTrueまたはFalseに評価できるため、http://legacy.python.org/dev/peps/pep-0008/ [PEP 8スタイルガイド]では、値を `+ True `または「 False 」は読みにくいため、予期しないブール値を頻繁に返すためです。 つまり、プログラムで ` if sammy == True:`を使用することを*避ける*必要があります。 代わりに、ブール値を返す別の非ブール値と「 sammy +」を比較します。

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

結論

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

「https://www.digitalocean.com/community/tutorials/understanding-data-types-in-python-3[Understanding Data Types]」チュートリアルで他のデータ型の詳細を学び、条件文について読むことができます。 「https://www.digitalocean.com/community/tutorials/how-to-write-conditional-statements-in-python-3-2 [条件ステートメントの記述方法]チュートリアル」。