이 모듈의 도달 목표

조건으로 상황 판단하기

비교와 논리 연산으로 상황을 나누고, 경계값까지 정확하게 처리하는 판단 프로그램을 만듭니다.

결과물 · 학습 상태 판정기
약 3~5시간
  • 비교식이 만드는 True와 False를 설명한다
  • if·elif·else로 겹치지 않는 분기를 설계한다
  • and·or·not으로 여러 조건을 결합한다
  • 경계값과 조건 순서 오류를 찾아 수정한다
01

비교식은 판단 결과를 만든다

==, !=, <, <=, >, >=는 두 값을 비교해 True 또는 False를 만듭니다. =는 값을 저장하고 ==는 같은지 비교하므로 역할이 다릅니다.

일상에서 보면놀이기구 입구에서 키가 기준 이상인지 확인해 입장 가능 표를 주는 것과 같습니다.
score = 85
print(score >= 70)
print(score == 100)
실행 결과
True
False
한 줄씩 보기
  1. score에 85를 저장합니다.
  2. 85가 70 이상인지 비교합니다.
  3. 85가 100과 같은지 비교합니다.
직접 값 바꾸기score를 70과 69로 바꾸어 경계값 결과를 비교하세요.
흔한 실수같다는 뜻으로 =를 쓰면 비교가 아니라 저장 문법으로 해석됩니다.

짧은 확인score가 80과 같은지 확인하는 식은 무엇일까요?

02

if와 else는 두 갈래를 만든다

if 조건이 참이면 들여쓴 블록을 실행하고, 거짓이면 else 블록을 실행합니다. 한 번의 판단에서 두 블록 중 하나만 실행됩니다.

일상에서 보면비가 오면 우산을 들고 그렇지 않으면 모자를 쓰는 두 갈래 선택입니다.
age = 18
if age >= 19:
    print('성인')
else:
    print('미성년')
실행 결과
미성년
한 줄씩 보기
  1. 나이를 저장합니다.
  2. 19 이상인지 비교합니다.
  3. 거짓이므로 else 블록이 실행됩니다.
직접 값 바꾸기age를 19로 바꾸어 경계값이 어느 쪽에 포함되는지 확인하세요.
흔한 실수조건 끝의 콜론을 빠뜨리면 SyntaxError가 발생합니다.

짧은 확인if 조건이 False일 때 실행되는 블록은 무엇일까요?

03

elif는 여러 구간을 차례로 검사한다

elif는 앞 조건이 거짓일 때만 다음 조건을 확인합니다. 위에서 아래로 검사하고 처음 참인 블록 하나를 실행한 뒤 나머지는 건너뜁니다.

일상에서 보면성적표에서 A 기준부터 확인하고 해당하지 않을 때만 B와 C 기준으로 내려가는 과정입니다.
score = 85
if score >= 90:
    print('A')
elif score >= 80:
    print('B')
else:
    print('C')
실행 결과
B
한 줄씩 보기
  1. 90 이상은 거짓입니다.
  2. 80 이상은 참이므로 B를 출력합니다.
  3. 이후 else는 검사하지 않습니다.
직접 값 바꾸기조건의 순서를 80, 90으로 바꾸고 95를 넣어 잘못된 결과를 확인하세요.
흔한 실수넓은 조건을 먼저 두면 뒤의 더 구체적인 조건에 도달하지 못합니다.

짧은 확인점수 구간을 나눌 때 높은 기준을 먼저 두는 이유는 무엇일까요?

04

and·or·not으로 조건을 결합한다

and는 양쪽이 모두 참일 때, or는 하나라도 참일 때 참입니다. not은 판단 결과를 반대로 바꿉니다. 복잡한 식은 괄호로 묶어 의도를 드러냅니다.

일상에서 보면입장권도 있고 신분증도 있어야 입장하는 규칙은 and, 둘 중 하나의 쿠폰만 있어도 되는 규칙은 or입니다.
score = 82
attendance = 90
print(score >= 70 and attendance >= 80)
print(score >= 90 or attendance >= 90)
실행 결과
True
True
한 줄씩 보기
  1. 점수와 출석률을 저장합니다.
  2. 두 통과 기준을 모두 확인합니다.
  3. 두 우수 기준 중 하나라도 맞는지 확인합니다.
직접 값 바꾸기attendance를 79로 바꾸어 첫 결과가 어떻게 변하는지 확인하세요.
흔한 실수자연어처럼 score >= 70 and <= 100으로 쓰지 말고 양쪽에 score를 적어야 합니다.

짧은 확인점수와 출석률이 모두 기준 이상이어야 할 때 어떤 연산자를 쓸까요?

05

들여쓰기와 경계값으로 오류를 찾는다

Python은 들여쓰기로 조건에 속한 코드 범위를 구분합니다. 조건을 작성한 뒤에는 기준 바로 아래·같음·바로 위 값을 넣어 경계가 정확한지 확인합니다.

일상에서 보면지도에서 경계선 안쪽과 바깥쪽을 각각 한 걸음씩 밟아 보는 검사와 같습니다.
temperature = 0
if temperature <= 0:
    print('얼 수 있어요')
else:
    print('액체 상태')
실행 결과
얼 수 있어요
한 줄씩 보기
  1. 경계값 0을 저장합니다.
  2. 0 이하에 0이 포함되는지 확인합니다.
  3. 참인 블록을 같은 너비로 들여씁니다.
직접 값 바꾸기-1, 0, 1을 차례로 넣어 세 경계값 결과를 기록하세요.
흔한 실수<와 <=를 혼동하면 기준과 정확히 같은 입력에서만 오류가 생길 수 있습니다.

짧은 확인70점 이상 조건을 검사할 대표 경계값 세 개는 무엇일까요?

공부 시간 알림

  1. 시간을 실수로 입력받습니다.
  2. 1시간 미만을 if로 확인합니다.
  3. 3시간 이상을 elif로 확인합니다.
  4. 나머지는 else로 처리하고 경계값을 실행합니다.
hours = float(input())
if hours < 1:
    print('조금 더!')
elif hours >= 3:
    print('목표 달성!')
else:
    print('좋아요!')

핵심을 확인해 볼까요?

5문항 중 4문항 이상 정답이면 완료됩니다. 오답 후에도 다시 제출할 수 있습니다.

1같다는 비교 연산자는?
2모든 앞 조건이 거짓일 때 실행되는 것은?
3두 조건이 모두 참이어야 할 때 쓰는 연산자는?
490점 이상 A, 80점 이상 B를 올바르게 나누는 순서는?
5score >= 70의 경계값을 확인하기 좋은 입력 조합은?