05. 조건문
if / elif / else로 조건에 따라 코드 분기하기
목차
- 학습 목표
- 1. 조건문이란?
- 정의
- 사용 예
- 기본 구조
- 들여쓰기 (Indent)
- 실습 5-1. 양수 판별 — if ~ else 기본형
- 2. 비교 연산자
- 6가지 비교 연산자
- 실습 5-2. 비교 연산자 참/거짓 확인
- 실습 5-3. 짝수/홀수 판별
- 3. 논리 연산자
- 3가지 논리 연산자
- 실습 5-4. and — 시험 합격/불합격 판정
- 실습 5-5. or — 입장료 무료 판정
- 실습 5-6. not — 빈 입력 감지
- 4. if ~ elif ~ else — 다중 조건 분기
- 구조
- 핵심
- 실습 5-7. 성적 등급 판정
- 실습 5-8. 비밀번호 확인
- 5. 스포츠 응용 — 농구 선수 기여도 비교
- 공식
- 활용 개념
- 연습 문제
스포츠 데이터로 배우는 파이썬 기초
학습 목표
- 조건문의 개념과 필요성 이해
if,elif,else구문 작성- 비교 연산자와 논리 연산자 활용
- 들여쓰기(Indent)의 중요성 체득
- 스포츠 상황에서 조건 분기 적용
1. 조건문이란?
정의
- 조건에 따라 다른 코드를 실행하는 구문
- “만약 ~하면 ~하다” 와 같은 상황에서 사용
사용 예
- 만약 점수가 80점 이상이면 → 합격
- 만약 나이가 65세 이상이면 → 입장료 무료
- 만약 10골 이상이면 → 에이스
기본 구조
if 조건식:
조건이 참일 때 실행
else:
조건이 거짓일 때 실행
들여쓰기 (Indent)
- 파이썬은 들여쓰기로 코드 블록을 구분
- Tab 키 또는 공백 4칸 사용
- 들여쓰기가 맞지 않으면
IndentationError발생
실습 5-1. 양수 판별 — if ~ else 기본형
# 양수 판별
x = int(input('숫자를 입력하세요: '))
if x > 0:
print('양수!')
else:
print('0 또는 음수!')
양수!
2. 비교 연산자
6가지 비교 연산자
| 연산자 | 의미 | 예시 | 결과 |
|---|---|---|---|
> | 크다 | 10 > 9 | True |
< | 작다 | 3 < 2 | False |
>= | 크거나 같다 | 10 >= 10 | True |
<= | 작거나 같다 | 5 <= 3 | False |
== | 같다 | 7 == 7 | True |
!= | 다르다 | 3 != 5 | True |
실습 5-2. 비교 연산자 참/거짓 확인
x = 10
y = 3
print(x > 9) # True
print(y <= 10) # True
print(x + y == 13) # True
print(x % 2 == 0) # True (짝수)
print(y % 2 == 0) # False (홀수)
True
True
True
True
False
실습 5-3. 짝수/홀수 판별
%나머지 연산자 활용- 2로 나눈 나머지가 0이면 짝수
num = int(input('숫자를 입력하세요: '))
if num % 2 == 0:
print('짝수이다.')
else:
print('홀수이다.')
짝수이다.
3. 논리 연산자
3가지 논리 연산자
| 연산자 | 의미 | 사용 상황 |
|---|---|---|
and | 둘 다 참이면 참 | 필기 그리고 실기 모두 80점 이상 |
or | 하나만 참이어도 참 | 관리자 이거나 레벨 1 |
not | 참↔거짓 반전 | 이름이 입력되지 않았으면 |
실습 5-4. and — 시험 합격/불합격 판정
- 필기 그리고 실기 모두 80점 이상이어야 합격
score1 = int(input('필기 성적을 입력하세요: '))
score2 = int(input('실기 성적을 입력하세요: '))
if score1 >= 80 and score2 >= 80:
print('합격!')
else:
print('불합격!')
불합격!
실습 5-5. or — 입장료 무료 판정
- 65세 이상 이거나 7세 미만이면 무료
age = int(input('나이를 입력하세요: '))
pay = '3000원'
if age >= 65 or age < 7:
pay = '무료'
print('입장료:', pay)
입장료: 무료
실습 5-6. not — 빈 입력 감지
name = input('이름을 입력하세요: ')
if not name:
print('이름이 입력되지 않았다.')
else:
print('이름:', name)
이름이 입력되지 않았다.
4. if ~ elif ~ else — 다중 조건 분기
구조
if 조건1:
조건1 참일 때
elif 조건2:
조건1 거짓, 조건2 참일 때
elif 조건3:
...
else:
모든 조건 거짓일 때
핵심
elif는 여러 개 사용 가능- 위에서부터 순서대로 검사 → 첫 번째로 참인 조건만 실행
else는 생략 가능
실습 5-7. 성적 등급 판정
score = int(input('점수를 입력하세요: '))
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'F'
print('성적: %d점' % score)
print('등급: %s' % grade)
성적: 75점
등급: C
실습 5-8. 비밀번호 확인
answer = '12345'
password = input('비밀번호를 입력하세요: ')
if password == answer:
print('비밀번호 OK!')
else:
print('비밀번호 Not OK!')
비밀번호 Not OK!
5. 스포츠 응용 — 농구 선수 기여도 비교
공식
- 기여도 =
득점 + 리바운드×0.7 + 어시스트×1.2 - 턴오버×1.5
활용 개념
- 변수 저장, 산술 연산, f-string, if 조건문
# 농구 선수 기여도 비교
name_a, pts_a, reb_a, ast_a, to_a = 'Curry', 32, 5, 6, 3
name_b, pts_b, reb_b, ast_b, to_b = 'Doncic', 30, 8, 8, 4
score_a = pts_a + (reb_a * 0.7) + (ast_a * 1.2) - (to_a * 1.5)
score_b = pts_b + (reb_b * 0.7) + (ast_b * 1.2) - (to_b * 1.5)
print(f'{name_a} 지표: {round(score_a, 1)}')
print(f'{name_b} 지표: {round(score_b, 1)}')
if score_a > score_b:
print('더 높은 기여도:', name_a)
else:
print('더 높은 기여도:', name_b)
Curry 지표: 38.2
Doncic 지표: 39.2
더 높은 기여도: Doncic
연습 문제
Q1. 다음 코드의 출력 결과는? (score = 85)
if score >= 90:
print('A')
elif score >= 80:
print('B')
else:
print('C')
- A) A B) B C) C
Q2. and와 or의 차이는?
- A)
and는 둘 다 참이어야 참,or는 하나만 참이어도 참 - B) 둘 다 같음
# 연습 문제 정답
print("Q1 정답: B — 85는 90 미만이므로 첫 조건 통과, 80 이상이므로 'B'")
print("Q2 정답: A — and는 모두 참일 때, or는 하나만 참일 때 True")
Q1 정답: B — 85는 90 미만이므로 첫 조건 통과, 80 이상이므로 'B'
Q2 정답: A — and는 모두 참일 때, or는 하나만 참일 때 True