코드에서 return l1 or l2
을 사용하는 누군가를 보았을 때까지 파이썬에서이 두 싱글 톤 값을 이해할 수 있다고 생각했는데, l1과 l2가 모두리스트 오브젝트 였고, 그렇지 않으면 l1을 리턴하려고했습니다. l2.파이썬에서`None or False`,`False or None`,`None and False`,`False and None`의 결과를 이해하는 방법은 무엇입니까?
이 코드는 매우 짧아서 이해하기 쉬운 것처럼 보이기 때문에 좋습니다. 그런 다음, 나는 여기에 어떤 일이 일어나는지 알아 내기 위해 몇 가지 코드를 작성합니다.
print (True or 'arbitrary') #True
print (False or 'arbitrary') #arbitrary
print (None or 'arbitrary') #arbitrary
인쇄 된 결과는 예상대로입니다. 그러나 None
과 False
을 함께 넣으려고합니다. 정말로 이상한 일이 일어났습니다.
print (False or None) #None
print (None or False) #False
print (None or False or True) #True
그래서, 내 생각 엔 return A or B
의 규칙은 다음과 같습니다 위해
복귀 최초의 진정한 (None이, 아니 거짓) 값 (다음 우선 A와 B)
True 값이 없으면 마지막 값이 반환됩니다.
마지막으로,이 코드를 실행하여 추측을 확인합니다.
결과가 내 이론을 입증하는 것으로 보입니다. 그러나 누군가는 더 많은 설명을 가지고 있습니까?
또한 and
을 사용할 때 흥미로운 것을 얻었습니다. 왜?
print (None and False) #None
print (False and None) #False
[False 또는 None 대 False] 가능한 복제본 (https://stackoverflow.com/questions/3914667/false-orone-vs-none-or-false) – Galen