파이썬의 Falsy? - False로 취급되지만 False는 아닌 값 -
1. 파이썬의 오브젝트
파이썬의 오브젝트의 특징은 어떠한 타입의 오브젝트든 if문의 조건문이나 논리연산의 피연산자로 사용할 수 있다는 점
파이썬의 임의의 오브젝트는 bool()함수를 이용해 자신의 논리값을 결정할 수 있다
엄밀한 True/False와 구분되어 참으로 취급되는 값은 Truthy, 거짓으로 취급되는 값은 Falsy라고 부른다
2. Falsy
파이썬에서 False로 취급되는 Falsy는 다음과 같다
0, 0.0, 0j <zero constant>
[] , {} , (), "", set(), range(0) <empty sequence>
None
이외의 모든 오브젝트는 truthy
3. 주의할 점
Truthy와 Falsy는 True와 False로 취급하지만 이들은 True/False와는 다른 값이라는 것이 주의할 점이다
그래서 조건문을 사용할때 Truthy와 Falsy를 사용하는데
자기가 명확하게 하고 싶어서 == True나 == False를 사용하면 논리적 오류를 일으킬 수도 있다
a = 3이면 Truthy인데, if a:라고 하면 파이썬이 a를 True라고 취급해서 print(a)를 수행하는데
if a == True:라고 하면 Truthy와 True는 다르니까.. print(False)를 수행하는걸 볼 수 있다
Falsy도 마찬가지로 다음과 같은 결과를 보인다
a = []으로 하면 Falsy니까 False로 취급되는 값이다.
if not a: 하면 a가 False로 취급되어 not a는 True로 취급되니까 print('참')을 수행하는데
if a == False:로 하면 a가 False로 취급되지만 False는 아니니까 else가 수행되어 print(a)가 수행된다
4. 0과 1은 예외
모든 Falsy와 Truthy는 False와 True와는 서로 다르지만
0과 1은 예외이다.
0은 False와 같고 1은 True와 같다
참고
https://velog.io/@nellholic108/TIL-python-truty-falsy-value
https://ryanking13.github.io/2018/04/05/python-truthy-falsey.html
'프로그래밍 > Python' 카테고리의 다른 글
파이썬이 변수에 값을 저장하는 방법은? (0) | 2022.07.27 |
---|---|
파이썬에서 가상환경 만드는 방법? (0) | 2022.07.26 |
파이썬의 논리 연산 and/or의 비밀 - 단축 평가 - (0) | 2022.07.25 |
enumerate의 숨겨진 비밀 (0) | 2022.07.25 |
os 모듈 완벽 활용법 (0) | 2022.07.23 |