Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python論理演算子

条件付きステートメントを使用している場合は、ステートメントで複数の比較を行うことができます。たとえば、2つのステートメントがTrueと評価されるかどうか、または2つのステートメントの1つがFalseと評価されるかどうかを確認できます。

そこで、Python論理演算子が登場します。論理演算子は、条件ステートメントで複数の論理比較を行うことができる特殊なタイプの演算子です。

このチュートリアルでは、例を使用して、演算子の基本と、Pythonで提供される3つの論理演算子の使用方法について説明します。

Python演算子

演算子は、Pythonの特別な操作を示す記号です。たとえば、マイナス記号(-)演算子は、減算演算を示します。

Pythonには、3つの異なるタイプの演算子があります。これらは:

  • 算術演算子:これらを使用すると、プログラムで数学演算を実行できます。
  • 比較演算子:これらを使用すると、値を比較して、TrueまたはFalseを返します。
  • 論理演算子:これらを使用すると、条件ステートメントを組み合わせることができます。

次の2つの演算子(比較演算子と論理演算子)を使用すると、プログラマーはプログラムのフローをより適切に制御できます。たとえば、比較演算子を使用して、条件がTrueであるかどうかを確認し、Trueである場合は、プログラムで特定のコードブロックを実行できます。

比較演算子と論理演算子は、多くの場合、ifで使用されます 声明。たとえば、オンラインショッピングサイトのユーザーが16歳以上であるかどうかを確認したいとします。このコードを使用してこれを行うことができます:

age = 17

if age >= 16:
	print("User is 16 or over!")
else:
	print("User is under 16!")

コードが返されます:ユーザーは16歳以上です!

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

このプログラムでは、比較演算子を使用して、ユーザーの年齢(この場合は17に等しい)が16以上であるかどうかを比較しました。17は16より大きいため、このステートメントはTrueと評価され、メッセージUser is 16 or over! コンソールに印刷されました。

しかし、ifで複数の比較を実行したい場合はどうでしょうか。 声明?そこで、論理演算子が登場します。

Python論理演算子

Pythonには、値を比較できる3つの論理演算子が用意されています。

これらの論理演算子は、式をブール値に評価し、演算子の結果に応じてTrueまたはFalseを返します。 Pythonが提供する3つの論理演算子は次のとおりです。

名前 説明
および 両方の式が真の場合は真 aおよびb
または 少なくとも1つの式が真の場合は真 aまたはb
ない 式がfalseの場合にのみtrue ではありません

論理演算子は通常、2つ以上の式が特定の方法で評価されるかどうかを評価するために使用されます。

これらの論理演算子がどのように機能するかを説明するために、いくつかの例を見てみましょう。以前のオンラインショッピングの例に戻ります。

Pythonと演算子

指定されたすべての式がTrueと評価された場合、and演算子はTrueと評価されます。

オンラインショッピングサイトを構築しているとします。私たちのサイトは、ユーザーが16歳以上であることを確認する必要があります。また、ユーザーが良好な状態のアカウントを持っていることも確認する必要があります。そのために、次のコードを使用できます:

age = 17
good_standing = True

if (age >= 16) and (good_standing == True):
	print("This user's account can make a purchase.")
else:
	print("This user's account cannot make a purchase.")

コードが返されます:このユーザーのアカウントは購入できます。

このコードでは、andを使用しています ユーザーが16歳以上であるかどうかを評価し、ユーザーのアカウントが良好な状態であるかどうかを評価するステートメント。この場合、age >= 16 評価された後、good_standing == True 評価されます。これらのステートメントは両方ともTrueと評価されるため、ifの内容は ステートメントが実行されます。

これらの条件のいずれかがFalseと評価された場合(ユーザーが16歳未満の場合、またはアカウントの状態が良好でない場合)、elseのコンテンツ ステートメントが実行されたはずです。

Pythonまたは演算子

or演算子は、少なくとも1つの式がTrueと評価された場合、Trueと評価されます。

ロイヤルティプランに加入しているすべての買い物客に5%の割引を提供し、購入する65歳以上のすべての人に割引を提供するとします。そのために、次のプログラムを使用できます。

loyalty_plan = False
age = 67

if (loyalty_plan == True) or (age >= 65):
	discount = 5
else:
	discount = 0

print("Shopper discount: ", discount)

コードが返されます:買い物客割引:5。

この場合、コードはloyalty_planかどうかを評価します Trueに等しく、ageかどうかも評価します は65以上です。この場合、loyalty_planはTrueと等しくないため、ステートメントはFalseと評価されます。ただし、年齢は65歳を超えているため、ステートメントはTrueと評価されます。

orを指定したため コード内のステートメントと、Trueと評価された条件の1つ、ifの内容 ステートメントが実行されました。ただし、ユーザーがロイヤルティプランに参加しておらず、65歳未満の場合、elseのコンテンツ ステートメントが実行されます。

この場合、ユーザーには5%の割引が与えられました。次に、メッセージShopper discount: 、続いてユーザー割引のサイズがコンソールに印刷されました。

Pythonは演算子ではありません

not演算子は、式がFalseと評価された場合にのみTrueと評価されます。

割引は1回だけ使用され、割引を使用してまだ購入していない顧客にのみ割引を提供したいとします。このコードを使用してこれを行うことができます:

used_discount = True

if not(used_discount == True):
	print("This user has not used their discount.")
else:
	print("This user has used their discount.")

コードが返されます:このユーザーは割引を使用していません。

このコードでは、notステートメントを使用して、ステートメントused_discount == Trueかどうかを評価しました。 Falseと評価されます。この場合、ステートメントはTrueと評価されるため、ステートメントはnot Falseと評価されます。これにより、elseのコードになります 実行中のブロック。

ユーザーが割引を使用しなかった場合、used_discount == True Falseと評価されたので、not ステートメントはTrueと評価され、ifの内容は ステートメントが実行されたはずです。

結論

論理演算子を使用すると、プログラムのフローを制御できます。

and論理演算子を使用すると、2つの式がTrueかどうかを確認でき、or論理演算子を使用すると、複数の式の1つがTrueかどうかを確認でき、not演算子を使用すると、式がFalseかどうかを確認できます。

この記事で提供されている例を使用すると、専門家のようにPythonコードで論理演算子の使用を開始するために必要なすべてが揃っています。


  1. Pythonでの比較演算子の連鎖

    1つのステートメントで複数の条件チェックを使用する必要がある場合があります。この種のチェックには、x

  2. Pythonのさまざまな基本演算子は何ですか?

    Pythonの演算子は-に分類されます 算術演算子 +追加 -減算用 *乗算用 /除算用 //フロア分割用 モジュロまたは剰余の% 関係演算子 以上の場合 =以上の場合 <未満の場合 <=以下の場合 ==forは等しい !=forはと等しくありません 論理演算子 および-両方のオペランドがtrueの場合にのみtrue または-1つのオペランドがtrueの場合でもtrue not-オペランドがfalseの場合はtrue、その逆の場合 ビット演算子 &ビット単位のAND |ビットごとのOR 〜ビット単位ではない ^ビット単位のXORの場合 ビット単位の右シフト <<ビット単位の