본문 바로가기

Developing/Python_배우기

Python 04 - 제어문 (if, elif), 연산자(비교&논리), in/not in, pass

파이썬의 제어문은 if, while, for 제어문이 있다. 제어문은 자료형을 근간으로 하여 그것들의 흐름을 원할히 효율적어 만들어 주는것이다.

 

 

 

if문

다음과 같은 상황에 놓여 있다. ("돈이 있으면 책을 사고, 돈이 없으면 빌린다")

위와 같은 상황에서 파이썬은 다음과 같이 코딩 할 수 있다.

결과는 당연히 "책을 사자"가 출력된다. 위의 예제를 참고하여 if문의 기본 구조를 알아보면 다음과 같다.

 

 

조건문 참이면 1,2가 수행되고 거짓이면 A,B가 수행되는 구조이다. 특히 파이썬의 if문에서 가장 중요한 점은 바로 들여쓰기이다.

위 사진에서 보면 (":") 표시로 조건의 시작임을 알리고, 해당 조건에서 실행할 문장에 대해 들여쓰기를 한 것을 볼 수 있다.

즉, 다음과 같은 문법은 오류가 난다.

 

 

이는 파이썬만의 독특한 방식이다. C언어와 비교하면 코딩의 자율성이 떨어지지만 소스 분석시에는 강력한 기준이 됨으로써 분석이 쉽다.

물론, 들여쓰기를 공백으로 해도 되고, 탭으로 해도된다.

 

*   ':'는 필수 표시

조건문 다음에는 반드시 ':'가 오게 되는데, 이것은 별 의미가 없는 파이썬만의 문법 구조이다. 파이썬이 다른 언어보다 보기가 쉽고

소스 코드가 깔끔한 이유가 바로 ':'을 사용한 들여쓰기 때문이다.  다른 언어에서는 {} 이런 기호를 사용하지만 파이썬은 들여쓰기로 해결한다.

 

 

 

비교 연산자

조건 판단을 하는 경우 비교 연산자가 상당히 많이 쓰인다. 비교 연산자는 다음 표에서 확인할 수 있다.

 

 비교 연산자

의미 

x < y

  x가 y보다 작다.

x > y

  x가 y보다 크다.

x == y

  x와 y가 같다.

x != y

  x와 y가 다르다.

x >= y

  x가 y보다 크거나 같다.

x <= y

  x가 y보다 작거나 같다.

 

각 연산자의 예제는 아래에서 확인할 수 있다.

 

 

 

if 문의 기본 구조와 비교 연산자를 배웠으면 다음과 같은 상황에 맞게 코딩을 해보자.

" 돈이 10,000원 이상 있으면 책을 사고, 그렇지 않으면 사지 않는다."

 

 

 

 

 

 

논리 연산자

논리 연산자란 말 그대로 논리를 가지고 연산을 하는 연산자이다. 즉 맞거나 다르거나 같거나만이 연산의 결과로 나올 수 있다.

논리 연산자의 종류는 다음과 같다.

 

논리 연산자 

의미 

x or y

   x와 y 둘 중에 하나만 참이여도 참이다. (두개 다 거짓이면 거짓) 

x and y

   x와 y 둘 다 모두 참이여야 참이다. (하나라도 거짓이면 거짓) 

not x

   x를 부정한다(참이면 거짓, 거짓이면 참) 

 

다음의 예를 통해 논리 연산자를 사용해 보자.

"돈이 10,000원 이상 있거나 상품권이 있으면 책을 사고 그렇지 않으면 안 산다"

 

 

돈이 1000원 이라 비록 첫 번째 조건은 만족하지 않지만 상품권 (변수 spg)이 있기 때문에 책을 살 수 있다.

* 상품권이 없다고 하면 spg = 0 으로 선언한다.

 

 

 

 

in / not in

in 이라는 영단어가 "~~안에" 라는 뜻을 가진것을 미루어 보아 대충 어떤 조건문인지 이해 할 수 있다.

 - x in 리스트    x not in 리스트

 - x in 터플       x not in 터플

 - x in 문자열    x not in 문자열

 

 

1번째 조건을 해석해보자면 [1, 2, 3] 이라는 리스트 안에 1이 있는가?

==> 있으니 True를 반환한다.

 

2번째 조건을 해석해보자면 [1, 2, 3] 이라는 리스트 안에 1이 없는가?

==> 있으니 False를 반환한다.

 

터플과 문자열 또한 비슷하게 사용된다.

 

 

위의 것들을 이용하여 다음과 같은 상황에 맞게 코딩해보자.

 

현재 가방에 있는 목록 : 차키, 지갑, 키프트 카드

"가방에 지갑이 있다면 콜택시를 부르고, 없으면 방콕"

 

 

지갑이 있기 때문에 콜택시를 부른다.

 

 

 

 

 

elif (다중 조건)

위에서 배운 if문의 가장 큰 단점은 바로 조건이 복수로 올 수 없다는 것이다.

즉, 쉽게 말하면 그렇거나 아니거나 이 2개로 나뉜다.

 

다음과 같은 상황을 if와 else만으로 판단해보려 하면 상당한 어려움을 겪는다.

"돈이 10,000원 이상이면 택시, 5000원 이상이면 버스을 탄다"

 

 

위와 같이 할수는 있으나, 소스가 상당히 난해하게 되어 있다. 이러한 경우를 위해 파이썬은 elif 라는 것을 사용한다.

위와 동일한 상황을 elif를 사용하여 코딩하면 다음과 같다.

 

 

동일한 문장이지만 위에서 보았던 소스에 비하여 상당히 간결하고 알아보기 쉽다. 눈치껏 살펴보면 elif는 if <조건문>에서 거짓으로 나올 때

수행되는 또 다른 조건문이다.

if, elif, else의 기본 주고는 다음과 같다.

 

 

 

위에서 볼 수 있듯이 elif는 제한이 없다. (C언어의 else if를 줄인것이 elif라는...ㅋㅋ)

 

pass

조건문을 판단할 때 참/거짓에 따라 수행할 문장을 코딩할 때 아무것도 하지 않게 설정해야 할 때가 있다.

"가방에 펜이 있으면 아무것도 안 하고 펜이 없으면 펜을 산다"

 

'Developing > Python_배우기' 카테고리의 다른 글

Python 06 - 제어문 (for)  (0) 2014.01.12
Python 05 - 제어문 (while)  (0) 2014.01.12
Python 03 - 자료형  (1) 2013.12.20
Python 02 - 개발환경 구축  (0) 2013.12.19
Python 01 - 파이썬이란?  (0) 2013.12.19