2.1 조건문

조건문 (Conditional Statement)

  • if 조건문

  • elif 복수 조건

2.1.1 if 조건문

if 문은 반드시 참/거짓을 판단할 수 있는 조건과 함께 사용이 되어야합니다.

활용법

문법

if <expression>:
    <코드 블럭>
else:
    <코드 블럭>
  • expression에는 일반적으로 참/거짓에 대한 조건식이 들어갑니다.

  • 조건인 경우 : 이후의 문장을 수행합니다.

  • 조건거짓인 경우 else: 이후의 문장을 수행합니다.

  • 여러 개의 elif 부가 있을 수 있고(없거나), else는 선택적으로 사용합니다.

예시

if a > 0:
    print('양수입니다.')
else:
    print('음수입니다.')

Warning

  • 이때 반드시 들여쓰기를 유의해야합니다.

    • 파이썬에서는 코드 블록을 자바나 C언어의 {}와 달리 들여쓰기로 판단하기 때문입니다.

  • 앞으로 우리는 PEP 8에서 권장하는 4spaces를 사용합니다.

if style

[space vs tab]

출처 : 400,000 GitHub repositories, 1 billion files, 14 terabytes of code: Spaces or Tabs?

[연습] 크리스마스 판독기

조건문을 통해 사용자가 입력한 날짜가 크리스마스인지 확인하세요.


[입력 예시]

12/25

[출력 예시]

크리스마스입니다.

is_christmas = input('날짜를 입력해주세요 ex)12/24 : ')
날짜를 입력해주세요 ex)12/24 :  07/21
# 아래에 코드를 작성하세요.
# if 문을 활용해봅시다.
# is_christmas에 할당된 값이 '12/25'인 경우에는
# '크리스마스입니다 :)' 를 출력하고
# 그외의 경우에는 '크리스마스가 아닙니다 :(' 를 출력하는 코드를 작성하세요.

if is_christmas == '12/25':
    print('크리스마스입니다 :)')
else:
    print('크리스마스가 아닙니다 :(')
크리스마스가 아닙니다 :(

[실습] 홀/짝 판독기

조건문을 통해 변수 num의 값과 홀수/짝수 여부를 출력하세요.


[입력 예시]

3

[출력 예시]

홀수입니다.

num = int(input('숫자를 입력하세요 : '))
숫자를 입력하세요 :  3
# 아래에 코드를 작성하세요.
# if 문을 활용해봅시다.
# num에 할당된 값을 2로 나누었을때 나머지가 있는 경우에는 '홀수입니다.'를 출력하고
# num에 할당된 값이 2로 나누어 떨어지는 경우에는 '짝수입니다.'를 출력하는 코드를 작성하세요.

if num % 2:           # 1이면 True 이므로
    print('홀수입니다.')
else:
    print('짝수입니다.')
홀수입니다.

2.1.2 elif 복수 조건

2개 이상의 조건을 활용할 경우 elif <조건>:을 활용합니다.

if dust > 150:
    print("매우나쁨")
elif <조건식>:
    print("나쁨")
elif <조건식>:
    print("보통")
else:
    print("좋음")

[연습] 복수 조건문 연습

조건문을 통해 변수 score에 따른 평점을 출력하세요.

점수

등급

90점 이상

A

80점 이상

B

70점 이상

C

60점 이상

D

60점 미만

F


[입력 예시]

85

[출력 예시]

B

score = int(input('점수를 입력하세요 : '))
점수를 입력하세요 :  85
# 아래에 코드를 작성하세요.
# if, elif, else 문을 활용해봅시다.
# score에 할당된 값이 90 이상인 경우에는 'A'를 출력하고,
# score에 할당된 값이 90 미만, 80 이상인 경우에는 'B'를 출력하고,
# score에 할당된 값이 80 미만, 70 이상인 경우에는 'C'를 출력하고,
# score에 할당된 값이 70 미만, 60 이상인 경우에는 'D'를 출력하고,
# score에 할당된 값이 60 미만인 경우에는 'F'를 출력하는 코드를 작성하시오.

if score >= 90:
    print('A')
elif score >= 80:
    print('B')
elif score >= 70:
    print('C')
elif score >= 60:
    print('D')
else:
    print('F')
B
# 조건문은 순서대로 조건식을 검증하므로 순서에 유의해야 한다.
# score 가 80점이지만 조건문의 순서에 따라 'B'를 출력하지 못하고 'D학점 이상'을 출력한다.

score = 80

if score >= 90:
    print('A')
elif score >= 60:
    print('D학점 이상')
elif score >= 80:
    print('B')
D학점 이상

2.1.3 중첩 조건문

조건문은 다른 조건문에 중첩될 수도 있습니다. 이를 중첩 조건문(Nested Conditional Statement)이라고 합니다.

[연습] 중첩 조건문 활용

위 실습문제 2개 코드를 활용하여 95점 이상이면, “참 잘했어요”도 함께 출력해주세요.


[출력 예시]

A

참잘했어요.

score = 96
# 아래에 코드를 작성하세요.
# if, elif, else 문을 상황에 따라 중첩해서 활용해봅시다.
# score에 할당된 값이 90 이상인 경우에 일단 'A'를 출력하고,
# score에 할당된 값이 95 이상인 경우에는 추가적으로 '참 잘했어요.'를 출력하고,
# score에 할당된 값이 90 미만, 80 이상인 경우에는 'B'를 출력하고,
# score에 할당된 값이 80 미만, 70 이상인 경우에는 'C'를 출력하고,
# score에 할당된 값이 70 미만, 60 이상인 경우에는 'D'를 출력하고,
# score에 할당된 값이 60 미만인 경우에는 'F'를 출력하는 코드를 작성하시오.

if score >= 90:
    print('A')
    if score >= 95:
        print('참 잘했어요.')
elif score >= 80:
    print('B')
elif score >= 70:
    print('C')
elif score >= 60:
    print('D')
else:
    print('F')
A
참 잘했어요.

2.1.4 조건 표현식

  • 조건 표현식(Conditional Expression)은 일반적으로 조건에 따라 값을 정할 때 활용됩니다.

  • 삼항 연산자(Ternary Operator)라고 부르기도 합니다.


활용법

true_value if <조건식> else false_value
num = int(input('숫자를 입력하세요 : '))

print('0 보다 큼') if num > 0 else print('0 보다 크지않음')
숫자를 입력하세요 :  2
0 보다 큼
# 아래의 코드는 무엇을 위한 코드일까요?

num = int(input('숫자를 입력하세요 : '))
value = num if num >= 0 else -num
print(value)
숫자를 입력하세요 :  -1
1
# 아래에 주석으로 답변을 작성하세요.

# 절댓값 도출

[연습] 조건 표현식 작성하기

다음의 코드와 동일한 조건 표현식을 작성해보세요.

num = 2
if num % 2:
    result = '홀수입니다.'
else:
    result = '짝수입니다.'
print(result)

[출력 예시]

짝수입니다.
# 아래에 코드를 작성하세요.
# 위의 조건문을 조건 표현식으로 바꿔보세요.

num = 2
result = '홀수입니다.' if num % 2 else '짝수입니다.'
print(result)
짝수입니다.

[실습] 조건 표현식과 동일한 if 문 작성하기

다음의 코드와 동일한 if문을 작성해보세요.

num = -5
value = num if num >= 0 else 0
print(value)

[출력 예시]

0

# 아래에 코드를 작성하세요.
# 위의 조건 표현식을 if 문으로 바꿔보세요.
num = -5
if num >= 0:
    value = num
else:
    value = 0
print(value)
0