본문 바로가기

programming/python

[ python 친해지기 #8 ] 파이썬 제어문 (if 조건문)

[ python 친해지기 #8 ] 파이썬 제어문 (if 조건문)

 

안녕하세요. 심심한 코딩쟁이입니다.

 

오늘은 파이썬의 제어문 중 if 조건문에 대해서 알아보겠습니다.

 

영어의 뜻 그대로 '만약 ~~라면'의 의미를 가지고 동작합니다.

 

자세한 설명은 아래 내용을 천천히 따라와 주세요.

 

python-logo
파이썬 로고


if 문 구조

 

if 문을 사용하려면 if 뒤에 조건식을 위치시켜야 합니다.

 

if 조건식:
    수행할 문장
    수행할 문장
elif 조건식:
    수행할 문장
    수행할 문장
else:
    수행할 문장
    수행할 문장

 

제일 처음의 조건식 내용이 맞다면(True) if 문 아래 수행할 문장들이 실행되고

 

틀리면(False) if 문 다음의 elif, else로 넘어가게 됩니다.

 

아래 예제를 보면 쉽게 이해가 되실 겁니다.

 

score = 100

if score <= 50:
    print('공부하세요.')
elif score <= 90:
    print('공부한 보람이 있군요.')
else:
    print('천재군요.')
    
# 출력 결과
천재군요.

 

만약 score의 값이 85였다면 "공부한 보람이 있군요."라고 출력됩니다.

 

score의 값이 30이라면 "공부하세요."가 출력됩니다.


들여쓰기

 

파이썬은 들여쓰기를 아주 중요하게 생각합니다.

 

Tab과 Space바를 혼용한 들여쓰기를 한다면 들여쓰기 에러가 발생합니다.

 

개발도구에서 Tab을 Space바 4개 분량으로 자동 치환해 주는 옵션을 사용하면 좋습니다.

 

if 문을 중첩할 경우에는 단계별로 들여쓰기가 같아야 합니다.

 

예제를 보면서 이해해 봅시다.

 

# if 문 중첩을 통한 들여쓰기 이해하기

a = 100

if a > 10:
    print('10보다 큼') # if 문의 중첩이 1단계일 때는 Tab 하나 분량의 들여쓰기를 하지만
    if a > 20:
        print('20보다 큼') # 2단계 중첩에서는 Tab 두개 분량의 들여쓰기
        if a > 30:
            print('30보다 큼') # 3단계 중첩에서는 Tab 세개 분량의 들여쓰기를 사용합니다.
# 출력 결과
10보다 큼
20보다 큼
30보다 큼

 

vscode와 같은 개발도구에서는 들여쓰기 구분을 쉽게 하기 위해 선을 그려주기도 합니다.

 

indent
if 중첩과 들여쓰기

 

파이썬은 다른 언어와 달리 if 문을 { } 로 감싸지 않고 들여쓰기로 구분하기 때문에

 

원하는 기능을 제대로 하게끔 들여쓰기를 신경 써주어야 한다.


if 문의 다양한 조건식

 

if 문 뒤에 위치할 수 있는 조건식에 대해 알아봅시다.


비교연산자

 

연산자 의미
a > b a는 b보다 크다.
a >= b a는 b보다 크거나 같다.
a < b a는 b보다 작다.
a <= b a는 b보다 작거나 같다.
a == b a는 b와 같다.
a != b a는 b와 다르다. 

 

예제를 보면서 직접 한 문장씩 실행해 보시길 바랍니다.

 

# if 조건식에 비교연산자를 사용해보자.

a = 5
b = 1

if a > b:
    print("a는 b보다 크다.")
if a >= b:
    print("a는 b보다 크거나 같다.")
if a < b:
    print("a는 b보다 작다.")
if a <= b:
    print("a는 b보다 작거나 같다.")
if a == b:
    print("a는 b와 같다.")
if a != b:
    print("a는 b와 다르다.")

and, or, not 연산자

 

a 와 b 는 참 또는 거짓의 값을 지님 (bool 자료형)

 

연산자 의미
a and b a와 b 모두 참이면 참이다.
a or b a 또는 b 가 참이면 참이다.
not b b가 거짓이면 참이다.
a & b and 연산자와 같음
a | b or 연산자와 같음

 

# if 조건식에 and, or, not 연산자를 사용해보자.

if True and False:
    print("참")
else:
    print("거짓")

if True or False:
    print("참")
else:
    print("거짓")
    
if not False:
    print("참")
else:
    print("거짓")
    
# 출력 결과
거짓
참
참

in, not in 연산자

 

in 연산자는 "~안에" 란 의미에 걸맞은 동작을 하는 연산자입니다.

 

연산자 의미
a in b a가 b(리스트 or 튜플 or 문자열) 안에 존재한다.
a not in b a가 b(리스트 or 튜플 or 문자열) 안에 존재하지 않는다.

 

예제를 보면서 익혀봅시다.

 

# if 조건식에 in, not in 연산자를 사용해보자.

# 리스트
l = [1, 2, 3, 4, 5]

# 튜플
t = ('a', 'b', 'c')

# 문자열
s = 'apple'

if 'a' in l:
    print('a가 리스트안에 있다.')
else:
    print('a가 리스트안에 없다.')

if 'a' in t:
    print('a가 튜플안에 있다.')
else:
    print('a가 튜플안에 없다.')

if 'a' in s:
    print('a가 문자열안에 있다.')
else:
    print('a가 문자열안에 없다.')

# 출력 결과
a가 리스트안에 없다.
a가 튜플안에 있다.
a가 문자열안에 있다.


다중 조건 판단을 위한 elif

 

# 다중 조건 판단을 위한 elif 예시

# 학생들의 시험 점수에 맞는 학점을 차례대로 출력하시오.

score = [30, 40, 50, 80, 93, 100]

for i in score:
    if i < 10:
        pass # 아무것도 안하고 지나감.
    elif i <= 50:
        print('c')
    elif i <= 80:
        print('b')
    elif i <= 95:
        print('a')
    elif i == 100:
        print('a+')
# 출력 결과
c
c
c
b
a
a+

 

if 뒤에 elif 는 몇 개가 와도 상관없다.

 

참고로 if, elif, else의 조건식이 참이지만 아무것도 안하고 지나가게하려면 pass를 사용한다.


조건부표현식

 

참일 때 실행할 문장 if 조건식 else 거짓일 때 실행할 문장

 

# 조건부표현식 삼항연산자 라고도 불림

a = 4
b = 13

if a % 2 == 0:
    print("2의 배수")
else:
    print("2의 배수 아님")

if b % 2 == 0:
    print("짝수")
else:
    print("홀수")

# 위의 각기 다른 내용을 한줄로 요약 가능
print("2의 배수" if a % 2 == 0 else "2의 배수 아님")
print("짝수" if b % 2 == 0 else "홀수")

여기까지 파이썬 제어문 if 조건문에 대해서 알아보는 시간이었습니다.

 

다음에는 제어문의 for 반복문, while 반복문에 대해 살펴보는 시간을 가지도록 하겠습니다.

 

if 문을 쉽게 이해하셨다면 다음 반복문의 내용도 크게 어렵진 않을거라 생각됩니다.

 

오늘도 으쌰으쌰 힘내봅시다. 감사합니다.

반응형