if 문
if 문
우리가 아는 속담 중에 ‘ 달면 삼키고 쓰면 뱉는다.‘라는 구절을 파이썬의 if 문으로 나타내 봅시다.
실행 결과
삼키다
위의 예제를 플로우 차트(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 문을 삽입했다고 생각하면 됩니다.