AFAIK는 :Python : 왜 False 또는 'name'이 'name'을 반환하고 False가 아닌지?
and
, or
는 부울 연산자 것으로, 어떤 부울 표현식은 부울을 반환해야합니다.
그래서, 왜이 발생 않습니다
False or 'name'
반환'name'
하지True
True and ''
반환''
및False
설명하십시오하지, 어떻게 파이썬은 불리언 표현식을 처리합니까?
AFAIK는 :Python : 왜 False 또는 'name'이 'name'을 반환하고 False가 아닌지?
and
, or
는 부울 연산자 것으로, 어떤 부울 표현식은 부울을 반환해야합니다.
그래서, 왜이 발생 않습니다
False or 'name'
반환 'name'
하지 True
True and ''
반환 ''
및 False
설명하십시오하지, 어떻게 파이썬은 불리언 표현식을 처리합니까?
아니요, 파이썬에서 or
및 and
연산이 단락되어 마지막 평가 항목을 반환합니다.
는 Boolean operations 참조 :
표현
x and y
첫번째 평가하여x
을;x
이 false이면 해당 값이 반환됩니다. 그렇지 않으면y
이 평가되고 결과 값이 반환됩니다.식
x or y
은 먼저x
을 평가합니다.x
이 참이면 해당 값이 반환됩니다. 그렇지 않으면y
이 평가되고 결과 값이 반환됩니다.
해야는 부울 값을 사용하면, bool()
사용하는 경우 :
>>> bool(False or 'name')
True
하지만 자바 스크립트와 루비에서 해봤을 때, 파이썬에서와 똑같이 작동했습니다. 하지만 C에서 동일한 단락 회로를 시도했을 때 1과 0, 즉 부울 결과가 반환되었습니다. 우리는 cpython을 사용하고 있기 때문에 C와 동일하게 동작해야하지만 그렇지 않습니다. 왜? –
이것은 C가 아닌 파이썬입니다. Jython, PyPy 및 IronPython에서와 동일합니다. 언어는 이것이 작동하는 방식을 지정하고, '부작용'은 많은 장소에서 사용됩니다. 예 : 'somevariable = someothervariable 또는 fallback'. –
나는 언어 간 싸움을 의미하지는 않는다. 'and'와 'or'는 논리적 연산자이므로, 기본적으로 부울 결과를 반환해야한다. –
Downvoter을, 적어도 주 어떻게 개선 될 수 있었다하세요? –