2014-02-10 4 views
2
first = int(input('first int: ')) 
second = int (input('second int: ')) 
result =0 
if first and second: 
result =1 
elif not first: 
    result =2 
elif first or second: 
    result=3 
else: 
    result=4 
print(result) 

1과 0을 입력하면 결과는 3입니다. 누군가 설명을 추가 할 수 있으면 감사하겠습니다.파이썬에서 코드를 이해하는 데 도움이 필요합니다

+1

아니요, 중복 할 수 없습니다. 될 수 없어! –

+0

최근 질문에 대한 답변을 편집했습니다. – gravetii

답변

2

or을 사용하고 있습니다. 이는 True을 처음 발견했을 때 True을 반환한다는 것을 의미합니다. 5 or 9이라고 말하면 5와 9는 모두 사실이 아닙니다 (0이 아닌 값도 마찬가지 임). 따라서이 경우 첫 번째 -5가 반환됩니다. 당신이 9 or 5을 말할 때, 그것은 9

편집을 반환 : 1 자명 한 이치를 나타 내기 때문에 k = 1 or 0True로 평가한다. 따라서 코드에 따라 result은 3입니다.

+0

"5와 9 모두 공허하게'True'"입니다. 이것은 파이썬이 "사실"이라고 생각하는 것을 오도하는 매우 잘못된 설명입니다. – user2357112

+0

... 이에 따라 편집 됨. – gravetii

0

많은 프로그램 언어에서 부울 연산은 결과에 필요한 경우 두 번째 인수 만 평가합니다. 이들은 단락 회로 운영자라고 불린다. 그리고 파이썬에서는 docs에 따라 다음을 반환합니다.

x or y : if x is false, then y, else x 
x and y : if x is false, then x, else y 
관련 문제