1. 제어문의 개요
-
제어문
- 조건문
- if-else문 → 중첩 if문, 연속 if문
- 관계 연산자, 조건 연산자, 논리 연산자
- 반복문
- for문(횟수)
- while문(조건) → 무한 루프
- 중첩 반복문
- 조건문
-
제어 구조: 프로그램의 실행 순서를 제어하는 구조로 크게 3가지가 있다.
- 순차 구조(Sequential): 명령어가 위에서 아래로 순서대로 실행되는 구조
- 선택 구조(Selection): 조건에 따라 실행할 명령을 선택하는 구조 (이번 장의 핵심)
- 반복 구조(Repetition): 특정 명령을 반복해서 실행하는 구조
2. 기본 조건문(if-else)
- 기본 구조: 조건식이 참(True)이면
if블록을, 거짓(False)이면else블록을 실행한다.
if 조건식:
문장1 (참일 때 실행)
else:
문장2 (거짓일 때 실행)-
블록(Block)
- 파이썬에서는 들여쓰기(Indentation)가 매우 중요하다.
- 들여쓰기가 같은 문장들이 하나의 블록을 형성한다.
-
else 생략
- 거짓일 때 실행할 문장이 없다면
else절은 생략 가능하다.
- 거짓일 때 실행할 문장이 없다면
-
cf.
- 콜론(:)은 복합문을 의미한다.
- pass 키워드는 “나중에 채워 넣겠음”을 의미한다.
3. 연산자(Operators)
조건문에 사용되는 중요한 연산자들이다.
3.1. 관계 연산자
- 관계 연산자(Relational Operators)
- 두 값을 비교하여 참(True) 또는 거짓(False)을 반환한다. - Boolean Value
==(같다),!=(다르다)>,<,>=,<=(크다, 작다, 크거나 같다, 작거나 같다)
| 수학적 표기 | 연산 |
|---|---|
x == y | |
x != y |
- 주의사항
- 문자열 비교: 사전 순서로 비교된다.
- 실수 비교: 부동소수점 오차로 인해
==대신abs(a - b) < 0.00001과 같이 차이가 매우 작은지 확인하는 방식을 권장한다. - cf.
sqrt(3.0)**2는 3.0과 같지 않다.
3.2. 논리 연산자
- 논리 연산자(Logical Operators)
- 여러 조건을 결합할 때 사용한다.
and: 둘 다 참이어야 참or: 둘 중 하나만 참이어도 참not: 참/거짓을 반대로 뒤집음- 드모르간의 법칙:
not (A and B)는(not A) or (not B)와 같다. (복잡한 논리식을 단순화할 때 사용)
if not ( country == “한국” and province != “제주” )
shipping_cost = 8000
# 드모르간의 법칙을 사용하여 이러한 논리식을 단순화할 수 있다.
if country != “한국” or province == “제주” :
shipping_cost = 80003.3. 조건 연산자
- 조건 연산자(Ternary Operator)
- 간단한 if-else 문을 한 줄로 표현할 때 사용한다.
변수 = (참 값 if 조건 else 거짓 값)
# if-else문
if price > 20000 :
shipping_cost = 0
else :
shipping_cost = 3000
# 조건 연산자
shipping_cost = ( 0 if price >= 20000 else 3000 )4. 확장 조건문
4.1. 중첩 if 문(Nested if)
if문 안에 또 다른if문이 들어가는 구조- 예: 배송지가 ‘한국’이면서 가격이 ‘2만원 이상’인 경우 등 복합적인 조건을 단계별로 검사할 때 사용
4.2. 연속 if 문(if-elif-else)
- 조건이 여러 개일 때 사용 (다중 선택)
- 예: 성적 처리 (90점 이상 A, 80점 이상 B, …), 수온에 따른 물의 상태 등
- 파이썬에는 타 언어의
switch문이 없으므로 주로elif를 사용한다.