03. Python 기초 — 조건문과 반복문
🎯 이 장의 목표
- 비교·논리 연산자로 참/거짓을 판단할 수 있다
- 조건문(
if)으로 상황에 따라 다르게 행동하게 만든다 - 반복문(
for,while)으로 같은 일을 자동 반복한다 - 리스트 컴프리헨션으로 목록을 간결하게 만든다
비교 연산자: 참/거짓을 가려내기
두 값을 비교하면 결과는 항상 True(참) 또는 False(거짓)입니다.
PYTHON
print(5 > 3) # 크다 print(5 == 5) # 같다 (등호 두 개!) print(5 != 3) # 다르다 print(5 <= 4) # 작거나 같다
실행 결과:
CODE
True True True False
| 연산자 | 뜻 |
|---|---|
> < | 크다 / 작다 |
>= <= | 크거나 같다 / 작거나 같다 |
== | 같다 |
!= | 다르다 |
⚠️ 흔한 실수
흔한 실수 — =와 ==는 다르다=는 값을 할당(상자에 넣기), ==는 같은지 비교입니다. 조건에서 =를 쓰면 에러가 나니 주의하세요.논리 연산자: 조건을 묶기
여러 조건을 and(그리고), or(또는), not(아니다)으로 엮을 수 있습니다.
PYTHON
age = 25 print(age >= 20 and age < 30) # 20 이상 '그리고' 30 미만 print(age < 10 or age > 20) # 10 미만 '또는' 20 초과 print(not age == 25) # 25가 아니다? → 거짓
실행 결과:
CODE
True True False
| 연산자 | 뜻 | 참이 되는 때 |
|---|---|---|
and | 그리고 | 둘 다 참일 때 |
or | 또는 | 하나라도 참일 때 |
not | 부정 | 거짓을 참으로 뒤집음 |
조건문 if: 상황에 따라 다르게
조건이 참일 때만 특정 코드를 실행합니다.
PYTHON
score = 85 if score >= 90: print("A등급") elif score >= 80: print("B등급") else: print("C등급 이하")
실행 결과:
CODE
B등급
구조를 뜯어보면:
if 조건:— 조건이 참이면 아래 들여쓴 코드 실행elif 조건:— 위가 거짓이고 이 조건이 참이면 실행 (else + if, 여러 개 가능)else:— 위 조건이 모두 거짓이면 실행
⚠️ 흔한 실수
아주 중요 — 들여쓰기(indentation)가 문법이다파이썬은 들여쓰기로 코드의 묶음을 구분합니다.
if 아래 실행할 코드는 반드시 공백 4칸(또는 Tab)으로 들여 써야 합니다. 들여쓰기가 틀리면 IndentationError가 납니다. 다른 언어와 달리 이것이 파이썬의 핵심 규칙입니다.PYTHON
# 들여쓰기로 "if에 속한 코드"가 구분됨 if score >= 80: print("합격입니다") # if에 속함 (들여씀) print("축하합니다") # if에 속함 print("프로그램 끝") # if 밖 (들여쓰지 않음 → 항상 실행)
반복문 for: 목록을 하나씩 훑기
리스트 같은 목록의 요소를 처음부터 끝까지 하나씩 꺼내 반복합니다.
PYTHON
fruits = ["사과", "바나나", "포도"] for fruit in fruits: print(f"나는 {fruit}를 좋아해")
실행 결과:
CODE
나는 사과를 좋아해 나는 바나나를 좋아해 나는 포도를 좋아해
읽는 법: "fruits 안의 각 요소를 차례로 fruit에 담아, 아래 코드를 반복하라."
range(): 숫자 범위 반복
정해진 횟수만큼 반복할 때는 range()를 씁니다.
PYTHON
for i in range(5): # 0, 1, 2, 3, 4 (5는 포함 안 됨!) print(i)
실행 결과:
CODE
0 1 2 3 4
🔑 새 용어 — range(n)0부터n-1까지의 숫자를 차례로 만들어 줍니다.n은 포함되지 않습니다(range(5)는 5가 아니라 4에서 끝).range(2, 7)처럼 시작·끝을 줄 수도 있습니다(2,3,4,5,6).
합계 구하기 예시
PYTHON
total = 0 for n in [10, 20, 30, 40]: total = total + n print(total)
실행 결과:
CODE
100
반복문 while: 조건이 참인 동안 반복
while은 조건이 참인 동안 계속 반복합니다.
PYTHON
count = 1 while count <= 3: print(f"{count}번째") count = count + 1 # 이게 없으면 무한 반복!
실행 결과:
CODE
1번째 2번째 3번째
⚠️ 흔한 실수
흔한 실수 — 무한 루프while은 조건을 거짓으로 만들 장치(위의 count = count + 1)가 없으면 영원히 멈추지 않습니다. Colab에서 멈추지 않으면 상단의 ■ 정지 버튼을 누르세요.반복 제어: break와 continue
PYTHON
for n in range(10): if n == 5: break # 5에서 반복 완전히 중단 if n % 2 == 0: continue # 짝수면 건너뛰고 다음 반복으로 print(n)
실행 결과:
CODE
1 3
break: 반복문을 완전히 빠져나감continue: 이번 회차만 건너뛰고 다음 회차로
리스트 컴프리헨션: 목록을 한 줄로 만들기
반복으로 새 리스트를 만드는 일은 아주 흔합니다. 파이썬은 이를 한 줄로 줄이는 리스트 컴프리헨션(list comprehension)을 제공합니다.
먼저 일반적인 방법:
PYTHON
squares = [] for n in range(5): squares.append(n ** 2) print(squares)
이것을 컴프리헨션으로 줄이면:
PYTHON
squares = [n ** 2 for n in range(5)] print(squares)
실행 결과 (둘 다 동일):
CODE
[0, 1, 4, 9, 16]
조건도 붙일 수 있습니다 (짝수만 제곱).
PYTHON
even_squares = [n ** 2 for n in range(10) if n % 2 == 0] print(even_squares)
실행 결과:
CODE
[0, 4, 16, 36, 64]
읽는 법: "range(10)의 각 n 중에서 n이 짝수인 것만, n**2로 만들어 리스트로 담아라."
💡 팁: 컴프리헨션은 처음엔 낯설지만, 익숙해지면 코드가 짧고 읽기 좋아집니다. Pandas에서도 비슷한 발상(한 번에 전체를 처리)이 핵심이니 미리 친해져 두면 좋습니다.
🛠 미니 챌린지
- 점수
73을 받아, 60점 이상이면"합격", 아니면"불합격"을 출력하세요. for와range를 써서 1부터 10까지의 합을 구해 출력하세요.- 리스트 컴프리헨션으로 1~20 중 3의 배수만 담은 리스트를 만드세요.
✅ 미니 챌린지 해설
PYTHON
# 1. 조건문 score = 73 if score >= 60: print("합격") else: print("불합격")
실행 결과: 합격
PYTHON
# 2. 1~10 합 (range(1, 11) → 1부터 10까지) total = 0 for i in range(1, 11): total += i # total = total + i 의 줄임 표현 print(total)
실행 결과: 55
PYTHON
# 3. 3의 배수만 (컴프리헨션) multiples = [n for n in range(1, 21) if n % 3 == 0] print(multiples)
실행 결과: [3, 6, 9, 12, 15, 18]
이 장에서 배운 것
- 비교(
>,==,!=등)와 논리(and,or,not)로 참/거짓을 판단한다. if/elif/else로 상황에 따라 다르게 행동하며, 들여쓰기로 묶음을 구분한다.for는 목록을 하나씩,while은 조건이 참인 동안 반복한다 (range로 횟수 지정).- 리스트 컴프리헨션
[식 for 변수 in 목록 if 조건]으로 목록을 간결하게 만든다.
✍️ 확인 문제
range(3, 8)은 어떤 숫자들을 만들어 내나요?while반복문에서 가장 조심해야 할 실수는 무엇인가요?break와continue의 차이를 한 문장으로 설명하세요.
다음 장에서는 코드를 재사용 가능한 묶음으로 만드는 함수를 배웁니다.
👉 04. Python 기초 — 함수