파이썬 if 문 - Wisedog ' s Lifelog 
 파이썬 if 문 
 이번 챕터 의 주제 는 파이썬 if 문 입니다 . if 문 은 특정 조건 의 참 과 거짓 여부 에 따라 코드 를 다르 게 실행 하 기 위해서 사용 합니다 . 또한 if 문 은 개요 에서 언급 한 복합문 ( Compound Statements ) 으로서 if 문 내부 에 다른 문 을 가지 고 있 다는 특징 이 있 습니다 . 
 파이썬 if 문 의 형태 
 다른 절차 적 언어 와 비슷 한 형태 를 띄 고 있 습니다 . 먼저 if 다음 에 조건 ( test condition ) 을 수행 할 식 이 오 고 , 이 조건 이 “ 참 ” 일 경우 수행 할 1 개 이상 의 문 ( statements ) 이 옵니다 . 만약 처음 if 에서 는 거짓 이 되 지만 다른 조건 을 충족 할 때 수행 해야 할 경우 는 elif 를 사용 합니다 . 다른 언어 에서 는 주로 else if 로 사용 되 죠 . 형태 는 아래 와 같 습니다 . 
 elif test _ condition 2 : 
 if 는 한 번 밖 에 올 수 없 지만 , elif 는 여러 번 사용 가능 합니다 . if 나 elif 의 조건 을 만족 하 지 않 을 경우 else 절 이 실행 되 는데 , else 는 한 번 밖 에 사용 할 수 없 습니다 . 여기 서 else 는 생략 해도 무방 하 지만 모든 절차 적 언어 에서 그렇 듯이 if 문 은 꼭 else 를 사용 하 는 것 이 좋 습니다 . if 혹은 elif 의 조건 ( test condition ) 이 언제나 참 일 수 없 기 때문 입니다 . 따라서 예외 상황 에 대한 처리 측면 에서 라도 반드시 else 절 을 같이 사용 하 시 기 바랍니다 . 
 가장 기본 적 인 파이썬 if 문 사용법 
 조건 이 하나 있 을 경우 , 아래 와 같이 사용 합니다 . 
 print " a is not bigger than b " 
 위 코드 를 ex _ if . py 로 저장 하 고 명령 창 ( 윈도우 에서 는 cmd , 리눅스 에서 는 쉘 ) 에서 아래 와 같이 실행 합니다 . 
 $ python ex _ if . py 
 결과 는 예상 대로 a 가 b 보다 크 기 때문 에 “ a is bigger than b ” 라고 출력 됩니다 . 여기 서 if 다음 의 조건식 은 누구 나 할 수 있 는 비교 연산자 “ >” 를 사용 했 지만 , 파이썬 에서 조건 절로 사용 할 수 있 는 연산자 는 “ >” 이외 에 도 많 습니다 . 조건 절로 사용 할 수 있 는 식 은 아래 따로 언급 하 도록 하 겠 습니다 . 
 여러 조건 식 을 사용 할 때 – elif 
 위 의 예제 에서 한 가지 비교 하 지 않 은 조건 이 있 는데 , 이 는 바로 a 와 b 가 같 을 때 입니다 . 만약 if < 조건 > 문 이 거짓 이 면 elif 절 을 사용 해서 다시 한 번 다른 조건 으로 비교 할 수 있 습니다 . 
 이 를 ex _ if 1 . py 로 저장 하 고 실행 해 보 면 아래 와 같이 나옵니다 . 
 $ python ex _ if 1 . py 
 if 혹은 elif 에 뒤이 어 오 는 조건식 에 대해서 말 해 볼까 합니다 . 기존 C / C ++, Java 및 Javascript 를 다뤄 보 신 분 들 이 라면 익숙 하 시 리라 생각 됩니다 . 조건식 은 연산 결과 가 True 혹은 False 가 나오 는 식 입니다 . 
 a > b : a 가 b 보다 크 다 . 
 a < b : b 가 a 보다 크 다 . 
 위 조건식 을 실제 파이썬 에서 실행 해 보 겠 습니다 . 
 >>> a > b # 5 >   3 은 참 이 니 True 
 >>> a < b   # 5 <   3 은 거짓 이 니   False 
 파이썬 은 모든 것 이 객체 로 이루어져 있 고 , 모든 객체 에 대해서 참 / 거짓 값 을 시험 해 볼 수 있 습니다 . 아래 값 을 조건식 에 넣 으면 파이썬 에서 는 이 를 False 로 간주 합니다 . 
 0 의 값 을 가지 는 어떠 한 정수형 . ( 0 , 0 . 0 , 0 j ) 
 빈 시퀀스 자료 형 ( ” , ( ) , [ ] ) 
 실제 코드 로 확인 해 보 겠 습니다 . 
 >>> bool ( 1 ) # 0 이 아니 기 때문 에 True 
 >>> bool ( ' light saber ') 
 이외 의 값 은 모두 True 로 취급 합니다 . 
 Boolean 연산 – and , or , not 
 and , or , not 은 Boolean 연산자 인데 , 두 피연산자 간 의 논리 and , or , not 연산 을 담당 합니다 . 먼저 and 연산 부터 살펴보 겠 습니다 . 
 and 연산 은 and 연산자 와 두 피연산자 로 이루어진 식 인데 , 두 피연산자 가 모두 참 일 경우 참 입니다 . 다만 , 이 연산 에서 주의 할 점 은 short - circuit 입니다 . 한국어 로 뭐 라 번역 을 해야 할지 모르 겠 지만 전자 용어 로 는 단락 이 죠 . and 의 첫 번 째 피연산자 x 가 거짓 이 면 뒤 의 y 는 조건 을 판단 하 지 않 고 False 를 리턴 합니다 . and 는 두 피연산자 가 모두 참 이 어야 True 를 리턴 하 기 때문 에 이미 거짓 이 나오 면 그 뒤 의 피연산자 를 판단 하 지 않 습니다 . 이 를 short - circuit 이 라 합니다 . 
 or 연산자 는 두 피연산자 중 하나 라도 참 이 면 참 입니다 . 이 연산 역시 short - circuit 이 있 습니다 . or 의 첫 번 째 피연산자 x 가 참 이 면 뒤 의 y 는 판단 하 지 않 고 True 를 리턴 합니다 . 
 short - circuit 의 주 의 사항 
 예 를 들 어 아래 의 문 이 있 다고 가정 합니다 . 
 if foo ( ) and bar ( ) : 
 만약 foo ( ) 가 거짓 을 리턴 하 면 bar ( ) 는 실행 자체 가 안 되 기 때문 에 프로그래머 가 처음 생각 했 던 결과 와 다를 수 있 습니다 . Boolean 연산 시 에 는 이 점 주의 하 시 기 바랍니다 . 
 if 중첩 
 파이썬 에서 는 if 문 내부 에 또 if 문 을 사용 할 수 있 습니다 . 아래 와 같 은 조건 이 있 다고 하 겠 습니다 . 
 만약 계산 결과 가 100 미만 이 면 “ less than 100 ” 을 콘솔 에 출력 하 고 끝 내라 . 계산 결과 가 100 이상 인데 홀수 라면 “ odd ” 를 , 짝수 면 “ even ” 을 출력 하 라 . 
 이 를 코드 로 옮기 면 
 # % 는 2 의 나머지 연산 입니다 . % 2 의 결과 가 0 이면 짝수 죠 . 연산 에 대해서 는 추후 언급 하 겠 습니다 . 
 이론 상 으로 는 제한 없이 if 내부 에 또 다른 if 문 을 사용 할 수 있 습니다 만 , 보통 3 번 이상 중첩 되 지 않 도록 코드 를 작성 하 시 기 바랍니다 . 중첩 이 여러 번 되 면 가독성 도 떨어지 고 유지 보수 가 힘듭니다 . 
 Python 공식 문서