2014-11-13 1 views
-1

왜이 두 동등성은 파이썬에서 두 개의 서로 다른 결과를 생성합니까? 첫 번째가 0을 출력하는 이유는 확실하지 않습니다. 나는 True을 기대하고 있었다.파이썬에서 제로 평등

>>> 0 and 2 >= 0 
0 
>>> 2 and 0 >= 0 
True 

답변

6

제 유사하게 제

0 

이다

0 and True 

로 평가

(0) and (2 >= 0) # 0 evaluates to False 

로서 해석되기 때문에이

이고 이다

True and True 

로 평가된다

(2) and (0 >= 0) # any non-zero digit is evaluated to True 

True 

당신이 두 자릿수를 평가하려는 경우, 당신은 할 수

>>> 0 >= 0 and 2 >= 0 
True 

또는 많은 숫자의 경우에 대한 일부 기준을 확인하고 싶습니다.

,515,
>>> l = [1,4,6,2,7,3] 
>>> all(i >= 0 for i in l) 
True 
+0

0 and 0 비교 그러나 첫 번째 출력 0, 거짓 없습니다. – delnan

+0

'(0)과 (2> = 0)'은'거짓과 참 '과 같지 않습니다. – Vladimir

+0

'(0)과 (2> = 0)'은'거짓과 참'으로 평가되지 않고 '0과 참'으로 평가됩니다. 실제로 표현식이 단락되어 '0'만 평가됩니다. – Matthias

0
>>> 2 >= 0 
True 
>>> 0 and True 
0 
>>> False and True 
False 

첫째는 식 2> = 0 다음 0 사실을 평가한다. 파이썬 0 마찬가지로 그 이유 AND 연산 0 거짓 동등 트루 여기 결과 0

>>> 2 and 0 >= 0 
True 
>>> 0 >= 0 
True 
>>> 2 and True 
True 
>>> 

0은 참 동등보다 큰 2와 동일한 방법을 제공한다. 및 AND 작업은 그들 if x is false, then x, else y로 평가

1

According to referencex and y 진정한 결과를 제공합니다. 따라서 첫 번째 값 변환없이 bool 유형으로 반환합니다. 첫 번째 값은 0입니다.

0

and 연산자의 단락이 표시됩니다. 첫 번째 피연산자가 진리 값으로 평가되지 않으면 첫 번째 값이 그대로 반환됩니다.

False and False