以下は '&'と 'and'条件演算子とその結果を使って試した異なるシナリオです。 '&' 演算子使用"and"と "&"のためのpython条件演算子の奇妙な振る舞い
- を(Pythonの2.7を使用して):
-
'と' オペレータ:
なぜboth coさまざまな振る舞いを示すnditional演算子? 実際のシナリオの説明が参考になります。
ありがとうございます。
以下は '&'と 'and'条件演算子とその結果を使って試した異なるシナリオです。 '&' 演算子使用"and"と "&"のためのpython条件演算子の奇妙な振る舞い
なぜboth coさまざまな振る舞いを示すnditional演算子? 実際のシナリオの説明が参考になります。
ありがとうございます。
と両方の式が論理的に真であるかどうかをテストします(真/偽の値で使用される場合)。
も参照してください。 > 0 真 –
&
は、ではありません。それはthe bitwise andの略です。異なる演算子であるだけでなく、the operator precedenceも異なっています(and
は>
未満ですが、&
は上記です)。
すべての例のだから、最初:今すぐ演算子の優先順位キック
>>> point = 1
>>> score = 2
>>> point == 1 & score > 0
と最後の行が
>>> point == (1 & score) > 0
と同等です:
>>> 1 and 2
2
>>> 1 & 2
0
今すぐあなたのケースを分析することができます
==
と>
の優先順位は同等です。だからを評価することができます:
>>> 1 & score
0
>>> point == 0 > 0
最後の行は(point == 0) > 0
と同等です(演算子は同じ優先順位を持っている場合、あなたは、単に左から右へ)。
>>> point == 0
False
>>> False > 0
False
すべてがすべて
>>> point == 1 & score > 0
False
にあなたが今、あなたの第二文の評価を打破することができます:evaulateをすることができますか?
>>>ポイント= 1 >>>スコア= 2 >>>ポイント== 1 真 >>>スコアはあなたは答えを詳しく説明していただけます。 (point == 1&(score> 0))=> trueを返します。 –
@PrashantkumarKB私は答えを更新しました。あなたが何をしようとしているのか分かりませんが、ビットを操作しない限り、 '&'は使わないでください。 – freakish
&
は、bitwiseのAND演算子です。一方、and
は、論理演算子です。
問題は、&
は実際には論理 "and"ではなく、bitwise operatorです。したがって、各ビットで2つの数値を比較し、最初の2つの数値の両方にそのビットが設定されている場合は、ビットが設定された数値を生成します。だから1 & 2
はあなたに0を与えるでしょう。
これは通常は問題ではないでしょう(真が1、偽は0) - &ためoperator precedenceとand
相対的に>
と=
が異なることを除いて。
ので1 == 1 & 2 > 0
(最初のケースは):
1 == (1 & 2) > 0
、または1 == 0 > 0
として解釈され、そして1 == 0
がFalseであるため、全体のことはFalseです。 1 == 1 and 2 > 0
一方(第2ケース):
(1 == 1) and (2 > 0)
と解釈され、そしてこれらの場合の両方に該当するので、全部がTrueです。あなたは絶対に正しいです、私は私の答えを修正しました。 – bouteillebleu
*テキスト*をテキストとして投稿してください – Sayse
[質問するときにSOのコードをアップロードしないのはなぜですか?](http://meta.stackoverflow.com/questions/285551/why-may -i-not-upload-of-code-on-so-ask-a-question) –
https://stackoverflow.com/questions/36550588/assigning-string-with-boolean-expression –