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
평가됩니다 .x
x
y
x
위 문장에서 "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
코딩 할 때 인식하고 인식 해야하는 중요한 것은 두 가지를 비교할 때 None
needs is
, but True
및 False
need ==
입니다. 피 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 값만 가지고 있었고 0
false 값만 가지고있었습니다 . 말하기가 더 이해하기 쉽고 인간 친화적입니다.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 |