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"는 고정 된 값 True및 False. "참"인 것은 if진술을 성공 하게 만듭니다 . "거짓"이면 실패합니다. "거짓"값은 False, None, 0및 [](빈리스트).
"or"연산자는 첫 번째 피연산자 의 값 을 반환합니다. 이 값이 Python의 부울 의미에서 true이면 (일명 "진실성"), 그렇지 않으면 두 번째 피연산자 의 값 을 반환합니다 . 것이 될 일이 무엇이든 . 라는 제목의 하위 섹션을 참조하십시오 부울 연산을 섹션에서 표현 에서 현재의 온라인 문서를 .
두 가지 예에서 첫 번째 피연산자는 거짓으로 간주되므로 두 번째 피연산자의 값은 식을 평가 한 결과가됩니다.
당신은 그 실현해야한다 None, False그리고 True모든 싱글이다.
예를 들어 if foo is not None방법 foo이 아닌 다른 값을 갖는다 None. 이것은 if foo기본적으로 가지고 있는 것과 동일하게 작동합니다 if foo == True.
그래서, not None와 True같은 방식으로 작동합니다. 또한, None와 False같은 방식으로 작동합니다.
>>> 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 True및 Falseneed ==입니다. 피 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 or과and 단락 . 논리 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
'code' 카테고리의 다른 글
| Git 후크가 커밋에 파일을 자동으로 추가 할 수 있습니까? (0) | 2020.12.24 |
|---|---|
| 'double_scalars에서 잘못된 값이 발견되었습니다'경고, 아마도 numpy (0) | 2020.12.24 |
| 테스트 리소스 파일을 얻는 방법은 무엇입니까? (0) | 2020.12.24 |
| 애플리케이션 버전에 따라 Inno Setup 설치 프로그램의 버전을 자동으로 설정하려면 어떻게해야합니까? (0) | 2020.12.24 |
| jQuery get position of element relative to another element (0) | 2020.12.24 |