web-dev-qa-db-ja.com

Python論理演算子AND

Pythonの論理演算子で得られる結果に少し混乱しています。私は初心者で、数冊の本を使って勉強していますが、私が望むほど詳細に説明していません。

ここに私自身のコードがあります:

five = 5
two = 2

print five and two

>> 2

2つの変数を出力しているようです。

five = 5
two = 2
zero = 0

print five and two and zero

そこで、別の可変整数を追加しました。次に、印刷して次の出力を取得しました。

>> 0

バックグラウンドでPython?.

36
BubbleMonster

Pythonブール演算子は、True/Falseではなく、最後に評価された値を返します。 docs にはこれについての良い説明があります:

表現 x and y最初にxを評価します; xfalseの場合、その値が返されます。それ以外の場合、yが評価され、結果の値が返されます。

44
tdelaney

ちょっとした補足として:(コメントに対して十分な担当者がいません)複数の​​変数を出力するためにAND演算子は必要ありません。 print five, twoの代わりにprint five AND twoなどのコンマで変数名を単純に区切ることができます。エスケープを使用して、print "the var five is equal to: %s" %fiveなどの変数を印刷行に追加することもできます。詳細はこちら: http://docs.python.org/2/library/re.html#simulating-scanf

他の人が言ったように、ANDは論理演算子であり、次のような複数の条件をまとめるために使用されます

if (five == 5) AND (two == 2):
    print five, two
4
aChipmunk

ブールAnd演算子は、評価される式がfalseの場合、最初の値5を返し、評価される式がtrueの場合、2番目の値2を返します。 52は両方とも実数値、非偽値、および非NULL値であるため、式は真と評価されます。

両方の変数を出力したい場合は、それらを文字列に連結して出力​​できます。

five = 5
two = 2
print five + " and " + two

またはそれらの合計を印刷するには、使用できます

print five + two

この document は、論理ブール演算子の使用方法を説明しています。

3
deadboy

PythonのANDは、たとえばJavaの&&と同等です。これは英語のを意味するものではありません。 ANDは論理演算子です。 5つのホールド5と2つのホールド2を想定します。Pythonドキュメントから:式xとyは最初にxを評価します。 xがfalseの場合、その値が返されます。それ以外の場合、yが評価され、結果の値が返されます。基本的に、それはあなたのケースの最後の整数を評価します。

if (five and two):
...     print "True"
... else:
...     print "False"

ANDは、算術演算子ではなく、特定のケースのロジックをテストする論理演算子です。 5と2に対して7のような結果を取得する場合は、2つの整数を追加することを意味する「+」を使用する必要があります。下記参照:

>>> five = 5
>>> two = 2
>>> print five + two
7
1
Ali Gajani

09を試してください。

0の値がfalseであるため、結果は0です。 and演算子の左側のオペランドはFalseであるため、式全体がFalseであり、0を返します

1
bobalukalallu

In Pythonゼロ以外の整数値はすべてtrue、ゼロはfalseです。

OPの値は両方ともゼロではありません。

AND演算子は左から右にテストし、

withおよび、すべての値がTrueの場合、最後に評価された値を返します。いずれかの値がfalseの場合、最初の値を返します。

両方がゼロ以外であるため、両方とも真であるため、最後の値が返されます