Q & A
None과 False는 같은가요?
None이 False로 취급되긴 하지만 None과 False는 같지 않습니다. None은 아무것도 없다는 뜻이며 False는 거짓을 나타냅니다. 다음과 같이 is 연산자로 None과 False가 같은지 확인해보면 False가 나오므로 둘은 서로 다릅니다.
>>> None == False False >>> None is False False
if 조건문만 사용할 때와 elif를 사용할 때의 차이점은 무엇인가요?
다음과 같이 if 조건문만 사용하면 모든 if 조건문의 조건식을 검사한 뒤 코드를 실행합니다.
a, b, c = 10, 20, 30 if a == 10: # 조건식이 참 print('10') # 출력 if b == 20: # 조건식이 참 print('20') # 출력 if c == 30: # 조건식이 참 print('30') # 출력
실행 결과
10 20 30
세 if 조건문의 조건식이 모두 만족하므로 10, 20, 30이 출력됩니다. 만약 두 번째, 세 번째 if가 elif라면 실행 결과가 달라집니다.
a, b, c = 10, 20, 30 if a == 10: # 조건식이 참 print('10') # 출력 elif b == 20: # 조건식을 검사하지 않고 건너뜀 print('20') elif c == 30: # 조건식을 검사하지 않고 건너뜀 print('30')
실행 결과
10
if 조건문 뒤에 elif가 연결되어 있을 때는 첫 번째 if의 조건식이 만족하면 뒤에 오는 elif의 조건식은 검사하지 않고 그냥 건너뜁니다. 예제에서는 실제로 세 조건식이 모두 만족하지만 처음에 오는 if의 코드만 실행하고, 나머지 조건식은 검사하지 않고 건너뛰었으므로 10만 출력됩니다.
만약, 다음과 같이 첫 번째 if의 조건식이 만족하지 않았다면 두 번째 elif의 코드만 실행하고, 세 번째 elif는 건너뜁니다. 즉, 가장 처음 만족하는 if 또는 elif의 코드만 실행합니다.
a, b, c = 5, 20, 30 if a == 10: # 조건식이 거짓 print('10') elif b == 20: # 조건식이 참 print('20') # 출력 elif c == 30: # 조건식을 검사하지 않고 건너뜀 print('30')
실행 결과
20
if, elif는 여러 코드 중에서 하나만 실행할 때 사용합니다.