..

Search

12) if 문

if 문


if 문

우리가 아는 속담 중에 ‘ 달면 삼키고 쓰면 뱉는다.‘라는 구절을 파이썬의 if 문으로 나타내 봅시다.

코딩연습

c = "sweet"

if c=="sweet":

    print("삼키다")

else:

    print("뱉는다")

코딩테스트 ▶

실행 결과

삼키다

 

 

위의 예제를 플로우 차트(flow chart)로 표현하면 다음 그림과 같습니다.

 

조건문

 

파이썬의 if문에서 주의해야 할 것은 바로 예제의      부분입니다.

프로그래밍 언어에서는 이 부분을 들여쓰기(indentation)이라 합니다.

 

파이썬에서 if 문의 들여쓰기가 다르면 indentation Error가 발생합니다.

이러한 들여쓰기는 탭(tap) 또는 스페이스바(spacebar)를 사용하여 표현할 수 있습니다.

둘 중 어떤 것을 사용해도 상관없으나 같은 코드 내에서는 탭이나 스페이스바 중 하나로 통일하여 사용하는 것이 좋습니다.

 

if / else 문의 맨 끝에는 콜론(:)을 반드시 기재해야 합니다.

다른 프로그래밍 언어에서는 대괄호를 사용하여 if / else 문을 구분하지만, 파이썬에서는 콜론을 사용하여 if / else 문을 구분하므로 코드가 더욱 간결해집니다.


조건문과 비교연산자

if / else 문에는 참과 거짓을 판단하는 요소가 필요합니다.

자료형별로 참과 거짓은 다음과 같은 예제를 들 수 있습니다.

자료형 참의 예제 거짓의 예제
숫자 0이 아닌 모든 수 0
문자열 "xyz" ""
리스트 [1,2,3] []
튜플 (1,2,3) ()
딕셔너리 {1,2,3} {}

 

따라서 앞에서 살펴본 예제의 if 문은 참이 되어 실행 결과가 '삼킨다'를 출력하게 되는 것입니다.

 

 

파이썬에 사용할 수 있는 비교 연산자는 다음과 같습니다.

비교연산자 설명
x < y x가 y보다 작다.
x > y x가 y보다 크다.
x == y x와 y가 같다.
x != y x와 y가 같지 않다.
x <= y x가 y보다 작거나 같다.
x >= y x가 y보다 크거나 같다.

 

예제

>>> x = 1

>>> y = 7

>>> x < y

True

>>> x > y

False

>>> x == y

False

>>> x != y

True

>>> x <= y

True

>>> x >= y

False


x in s, x not in s

파이썬에서만 사용할 수 있는 독특한 조건문이 있습니다.

바로 x in s과 x not in s 입니다.

 

in 키워드는 변수 s에 x 값이 포함되어 있다면 True를 반환하고, 포함되어 있지 않다면 False를 반환합니다.

반대로 not in 키워드는 변수 s에 x 값이 포함되어 있지 않다면 True를 반환하고, 포함되어 있다면 False를 반환합니다. 

이때 변수 s의 자료형은 리스트, 튜플이나 문자열이 올 수 있습니다.

 

in 이라는 단어의 뜻을 생각하면서 아래 예제를 살펴보면 쉽게 이해가 될 것입니다.

예제

>>> a in ['a','b','c']

False

>>> 'a' in ['a','b','c']

True

>>> 'a' not in ['a','b','c']

False

 

in 키워드를 앞서 살펴본 예제에 응용하면 다음과 같습니다.

코딩연습

box =['candy','chocolate','coke']

if 'candy' in box:

    print("삼키다") #pass

else:

    print("뱉다")

코딩테스트 ▶

실행 결과

삼키다

 

이때 print("삼키다") 대신에 pass 키워드를 넣는다면 아무런 결과도 출력되지 않고 if / else 문이 종료됩니다.


and, or, not

파이썬에서 지원하는 또 다른 연산자가 있습니다. 바로 and, or, not 입니다.

C언어에서 이 연산자들을 &&(and), ||(or) 등으로 지원하지만 파이썬에선 좀 더 직관적으로 글자 그대로 지원합니다.

연산자 설명
x and y x와 y가 둘 다 참이면 결과도 참입니다.
x or y x와 y 중에서 둘중에하나만 참이면 결과도 참입니다.
not x x가 참이면 결과는 거짓입니다.

 

코딩연습

a=1

b=0

if a and b:

    print("AND")

elif a==0:

    print("a=0")

elif b==1:

    print("b=1")

elif not a:

    print("not a")

else:

    print("OR")

코딩테스트 ▶

실행 결과

OR

 

위의 예제와 같이 and, or, not을 사용할 수 있습니다.

여기서 지금까지는 살펴보지 못했던 elif 키워드가 있습니다.

이 키워드는 if / else 문만으로 표현할 수 없는 상황을 위해 또 다른 if 문을 삽입했다고 생각하면 됩니다.

 

C언어 조건문 수업 =>


연습문제