code

False 또는 없음 vs. 없음 또는 False

codestyles 2020. 12. 24. 23:45
반응형

False 또는 없음 vs. 없음 또는 False


In [20]: print None or False
-------> print(None or False)
False

In [21]: print False or None
-------> print(False or None)
None

이 행동은 나를 혼란스럽게합니다. 누군가가 왜 이런 일이 일어나는지 설명해 주시겠습니까? 나는 둘 다 똑같이 행동하기를 기대했습니다.


표현식 은 true 인 경우 또는 false 인 경우 x or y평가됩니다 .xxyx

위 문장에서 "true"및 "false"는 고정 된 값 TrueFalse. "참"인 것은 if진술을 성공 하게 만듭니다 . "거짓"이면 실패합니다. "거짓"값은 False, None, 0[](빈리스트).


"or"연산자는 첫 번째 피연산자 반환합니다. 이 값이 Python의 부울 의미에서 true이면 (일명 "진실성"), 그렇지 않으면 두 번째 피연산자 반환합니다 . 것이 될 일이 무엇이든 . 라는 제목의 하위 섹션을 참조하십시오 부울 연산을 섹션에서 표현 에서 현재의 온라인 문서를 .

두 가지 예에서 첫 번째 피연산자는 거짓으로 간주되므로 두 번째 피연산자의 값은 식을 평가 한 결과가됩니다.


당신은 그 실현해야한다 None, False그리고 True모든 싱글이다.

예를 들어 if foo is not None방법 foo이 아닌 다른 값을 갖는다 None. 이것은 if foo기본적으로 가지고 있는 것과 동일하게 작동합니다 if foo == True.

그래서, not NoneTrue같은 방식으로 작동합니다. 또한, NoneFalse같은 방식으로 작동합니다.

>>> foo = not None
>>> bool(foo)
True
>>> foo = 5  # Giving an arbitrary value here
>>> bool(foo)
True

>>> foo = None
>>> bool(foo)
False
>>> foo = 5  # Giving an arbitrary value here
>>> bool(foo)
True

코딩 할 때 인식하고 인식 해야하는 중요한 것은 두 가지를 비교할 때 Noneneeds is, but TrueFalseneed ==입니다. if foo == None만 수행 if foo is None하고 피하기 if foo != None만 할 if foo is not None. 의 경우 if foo is not None, 간단히하십시오 if foo. 의 경우 if foo is None, 간단히하십시오 if not foo.

참고 : True기본적으로 1이며 False기본적으로 0입니다. 파이썬의 예전 1에는 true 값만 가지고 있었고 0false 값만 가지고있었습니다 . 말하기가 더 이해하기 쉽고 인간 친화적입니다.True대신 것이 1더 이해하기 쉽고 인간 친화적이고, 대신 것이 더 이해하기 쉽고 인간 친화적 False입니다 0.


밀접하게 관련된 주제 : Python orand 단락 . 논리 or연산에서 인수가 참이면 모든 것이 참이되고 다른 것은 평가할 필요가 없습니다. 파이썬은 그 "참"값을 즉시 반환합니다. 완료되고 아무 것도 참이 아니면 처리 한 마지막 인수를 반환하며 이는 "거짓"값이됩니다.

and 반대입니다. 거짓 값이 있으면 즉시 해당 "거짓"값으로 종료하거나 모두 통과하면 최종 "참"값을 반환합니다.

>>> 1 or 2 # first value TRUE, second value doesn't matter
1
>>> 1 and 2 # first value TRUE, second value might matter
2
>>> 0 or 0.0 # first value FALSE, second value might matter
0.0
>>> 0 and 0.0 # first value FALSE, second value doesn't matter
0

부울 관점에서 둘 다 동일하게 작동하며 둘 다 false로 평가되는 값을 반환합니다.

or 주어진 값을 "재사용"하여 그것이 참이면 왼쪽을 반환하고 그렇지 않으면 오른쪽을 반환합니다.


Condition1 or Condition2

Condition1이 False이면 Condition2를 평가하고 반환합니다. False로 평가되는 사람은 없습니다.

참조 URL : https://stackoverflow.com/questions/3914667/false-or-none-vs-none-or-false

반응형