if~else와 elif 구문
else 조건문 활용
- else 구문은 if 조건문 뒤에 사용하며 if 조건문의 조건이 거짓일 때 실행이 된다.
if 조건:
조건이 참일 때 실행할 문장
else:
조건이 거짓일 때 실행할 문장
- 조건문이 오로지 두 가지로 만 구분될 때 if, else 구문을 사용하면 조건 비교를 한 번만 하므로 이전의 코드보다 효율적이라 할 수 있다.
elif 구문
- elif 구문은 if와 else 사이에 여러 조건을 순차적으로 검사할 때 사용하는 구문이다. "elif"는 "else if"의 줄임말로 여러 가지 경우를 하나씩 순서대로 확인하여 조건에 맞는 코드 블록을 실행할 수 있게 해준다.
if 조건A:
조선A가 참일 때 실행할 문장
elif 조건B:
조건B가 참일 때 실행할 문장
elif 조건C:
조건C가 참일 때 실행할 문장
...
else:
모든 조건이 거짓일 때 문장
- 순차적 검사: 위에서부터 차례대로 조건을 평가하며 최초로 참인 조건에 해당하는 블록만 실행된다.
- 조건 순서의 중요성: 보다 구체적이고 제한적인 조건을 먼저 배치하고 범위가 넓은 조건은 나중에 평가하는 것이 일반적이다.
- 가독성: if-elif-else 구조를 사용하면 여러 조건을 한 눈에 보기 쉽게 정리할 수 있어 유지보수에 용이하다.
False로 변환되는 값
- Python의 if 조건문에서는 불린(Boolean) 값이 아닌 다른 값들이 자동으로 True 또는 False로 평가된다.
False로 변환되는 값은 아래와 같다:
- None
- 숫자: 0, 0.0 등
- 빈 컨테이너:
- 빈 문자열: ""
- 빈 리스트: []
- 빈 튜플: ()
- 빈 딕셔너리: {}
- 빈 집합: set()
- 빈 바이트열: b""
이 외의 값은 기본적으로 True로 평가된다.
pass 키워드와 IndentationError
- 프로그래밍을 진행하면서 전체적인 구조(골격)는 먼저 잡아두고 나중에 구체적인 내용을 채우고 싶을 때가 있다. 이때 사용되는 pass 키워드는 "아직 구현하지 않음" 또는 "의도적으로 아무것도 하지 않음"을 나타내기 위해 사용된다.
if zero == 0:
pass # 나중에 내용을 추가할 예정임
else:
pass
IndentationError 주의:
- IndentationError는 '들여쓰기가 잘못되어 있다'라는 의미인데 그렇기 때문에 if 구문 사이에는 어떤 내용이라도 넣어 줘야 하는데 아래처럼 0을 넣어도 일단 실행은 정상적으로 된다.
if number > 0:
0 # "0"이라는 값이 실행되지만, 의도가 불명확함
else:
0
- 하지만 이렇게 0을 넣어 놓은 상태의 코드를 다른 개발자들이 보면 "왜 0이 있지?"라고 이상하게 생각할 수 있기 때문에 파이썬에서는 이러한 고민을 조금 덜어주기 위해 pass라는 키워드를 제공한다. 코드를 살펴보던 중 pass 키워드를 만나면 '진짜로 아무것도 안함' 또는 '곧 개발하겠음'이라는 단어로 생각하면 된다.