-
반응형
지난 포스팅까지는 파이썬의 자료형에 대한 내용을 알아 보았습니다.
이제는 파이썬의 기초 문법에서 제어문을 다룰 예정 입니다.
제어문은 보통 조건문과 반복문으로 나뉠 수 있습니다.
이번 포스팅은 이중 조건문에 해당하는 if 문에 대한 내용입니다.
다른 프로그램 언어를 배우신 분이면 이미 아시겠지만 다른 언어와 형식만 약간 다를 뿐 내용은 동일합니다.
기본적인 if 문의 형식 입니다.
if 안에 if 가 있을 수 있습니다. 파이썬의 문법에 맞게 들여쓰기를 잘 해야 합니다.
참고로 if 안에 if ~ else 를 중첩 할 수 있지만 너무 많이 중첩하는 것은 프로그램의 가독성을 떨어뜨리고 그리 좋은 코딩 방식은 아닙니다.
조건문은 이전 포스팅을 참고해 주세요.
[IT 이야기 공간/프로그램 언어 및 Database] - 파이썬 조건문 – 비교 논리 연산자
if < 조건문> :
조건문이 참일 경우 실행할 명령문
조건문이 참일 경우 실행할 명령문
else :
조건문이 거짓일 경우 실행할 명령문
조건문이 거짓일 경우 실행할 명령문
else 가 없고 if 문만 있을 수 있습니다. 단 else는 if 가 당연히 있어야 합니다.
조건문을 여러 개 사용하고 싶을 경우는 아래와 같은 형식으로 사용합니다.
if < 조건문1> :
조건문1이 참일 경우 실행할 명령문
조건문1이 참일 경우 실행할 명령문
elif < 조건문2> :
조건문2가 참일 경우 실행할 명령문
조건문2가 참일 경우 실행할 명령문
elif < 조건문3> :
조건문3이 참일 경우 실행할 명령문
조건문3이 참일 경우 실행할 명령문
else :
위의 조건문 모두 해당 사항이 없을 경우(거짓) 실행할 명령문
위의 조건문 모두 해당 사항이 없을 경우(거짓) 실행할 명령문
참고로, 위 문장은 다른 프로그램 언어에서 case 문으로 대체 가능하지만 파이썬은 case 문이 없습니다.
예제를 통해서 기본 구조를 알아 봅니다.
## 기본 구조로 if 문만 작성 할 수도 있습니다. X 가 10 면 print 하고 그렇지 않으면 아무것도 안 합니다.
>>> x = 10
>>> if x == 10 :
print( 'x is 10')
x is 10
## 기본 구조로 X 가 10 면 x is 10 을 출력하고 그렇지 않으면 x is not 10 을 출력합니다.
>>> if x == 10 :
print( 'x is 10')
else :
print( 'x' is not 10 )
x is 10
조건을 여러 개 사용하는 것으로 elif 를 사용합니다.
처음 조건을 만족하므로 x 는 10 보다 크거나 같음을 출력하고 다음 조건도 만족하지만 조건이 만족하는 if를 만난 후 구문을 빠져나갑니다. 따라서 두번째 elif x >= 5 는 수행을 안 합니다.
여기서 힌트를 얻으면 가장 참일 확률이 높은 구문을 먼저 써 주는 것이 좋습니다.
>>> if x >= 10 :
print( 'x는 10 보다 크거나 같음')
elif x >= 5 :
print ( 'x는 5보다 크거나 같음')
x는 10 보다 크거나 같음
>>>
## if 안에 if를 사용 가능합니다.
>>> x = 10
>>> y = 10
>>> if x >= 10:
if y >=20 :
print( '1번')
elif y > 10 :
print( '2번')
else:
print( '3번')
3번
>>>>>> x = [ 1, 3, 5 ]
>>> if 4 in x: ## 1. 조건을 만족하지 않으므로 else 로 감
print( '1번' )
else: ## 2
if 1 in x: print( '2번') ## 3. 만족하므로 2번을 출력
else: print('3번') ## 3번에서 만족하므로 if 문을 빠져 나와서 수행 안함
print('4번') ## 2 번에 해당하는 구문이므로 수행
2번
4번
>>>If 문을 한 라인으로 표현하고 싶다면 아래와 같이 바로 연결해서 사용하면 됩니다.
Case 문과 같이 사용하는 경우는 두번째 표현 방식이 개인적인 생각으로는 가독성이 좀더 좋은 것 같습니다.
>>> x = 4
>>> if x == 1:
print( '1번')
elif x == 2 :
print( '2번')
elif x == 3 :
print('3번')
elif x == 4 :
print('4번')
else:
print('5번')
4번
## 위와 동일한 문장입니다.
>>> if x == 1: print( '1번')
elif x == 2 : print( '2번')
elif x == 3 : print('3번')
elif x == 4 : print('4번')
else: print('5번')
4번if 구문에서 아무것도 수행하고 싶지 않다고 하여 어떤 명령문도 넣어 주지 않으면 구문 오류가 발생합니다.
이때는 pass 를 사용하면 아무런 행동을 하지 않습니다.
>>> if x:
else : print( '1번')
SyntaxError: expected an indented block
>>> if x : pass
else : print( '1번’)
>>>이번 포스팅은 제어문 중 if 구문에 대해 알아보았습니다.
다음 포스팅은 제어문 중 반복문에 대한 내용을 포스팅 예정입니다.
반응형'IT 이야기 공간 > 프로그램 언어' 카테고리의 다른 글
파이썬 제어문 - 반목문 while문 (0) 2020.06.26 파이썬 제어문 - 반목문 for문 (1) 2020.06.25 파이썬 조건문 – 비교 논리 연산자 (2) 2020.06.23 파이썬 집합(set) 확인 메소드 (0) 2020.06.22 파이썬 집합(set) 메소드로 추가, 제거하기 (0) 2020.06.20