2012-12-27 1 views
0

가능한 중복 신경 : 논리적 테스트는 true == False를 생산하고 있지만, 경우에하는 것이이 가능하다 어떻게
Why does “[] == False” evaluate to False when “if not []” succeeds?파이썬 : 논리식은 False입니다, 그러나 않는 경우하지

a : 작동합니까?

>>> a = bin(0) 
>>> if a: 
    print a == True, 'HOWWWW???????' 


False HOWWWW??????? 
>>> type(a) 
<type 'str'> 
>>> 
+0

파이썬에는이 문서에서 거짓으로 평가되는 표현식 목록이 있습니다. http://docs.python.org/2/library/stdtypes.html#truth-value-testing –

답변

6

if에 해당 명령문은 값이 true인지 여부에 달려 있지 않습니다. bool(a)이 True인지 여부에 따라 달라지며,이 경우에는 True입니다. 비어 있지 않은 문자열은 부울 컨텍스트에서 true로 간주됩니다. the documentation을 참조하십시오.

0

OK 아래 코드를 참조하십시오, 당신이 이런 식으로 문자열을 테스트 할 수 없습니다 파이썬에서 보인다 : 문자열 a에 대한

>>> a == False 
False 
>>> a == True 
False 
>>> 
+1

왜 그렇지 않습니까? True 또는 False가 문자열이 아니기 때문에 문자열은 True 또는 False와 같지 않습니다. 적어도 예외는 발생하지 않습니다! –

0

, if aif len(a)!=0

관련 문제