STEP 1. 조건문 (Conditional Statements)
1, 조건문이란?
어떤 조건이 참이면 코드를 실행하고, 거짓이면 특정 코드블럭을 실행한다. 라는 구조를 가진 문장이다.
즉, 특정 조건이 만족될 때만 원하는 코드 블록을 실행하도록 만드는 장치이다.
파이썬에서의 조건문은 항상
조건식 → 판단(True / False) → 실행 여부 결정
이 흐름으로 동작한다.
조건문 기본 개념
• 조건식은 반드시 불리언 값 (참, 거짓)으로 평가될 수 있는 식이어야 한다.
→ 비교 연산, 논리 연산, 함수의 반환값, 변수 자체 등이 조건식이 될 수 있다
• 파이썬에서는 0, None, ""(빈 문자열), [](빈 리스트), {}(빈 딕셔너리) 등도 False로 간주한다
• :(콜론) 뒤의 코드는 반드시 들여쓰기를 통해 블록을 형성한다.
• 들여쓰기가 없으면 문법 오류가 발생
2. if / elif / else 기본 구조
if 조건:
# 조건이 참일 때 실행될 코드
elif 다른조건:
# 다른 조건이 참일 때 실행될 코드
else:
# 위의 조건이 모두 거짓일 때 실행될 코드
예시문제
입력된 성적을 점수가 90점 이상이면 A, 80이상이면 B, 그 이외엔 C로 분류하세요
수도코드로 보기
| 만약 점수가 90 이상이면 "A" 아니면 점수가 80 이상이면 "B" 아니면 "C" |
score = 85
if score >= 90:
print("A")
elif score >= 80:
print("B")
else:
print("C")
실행 순서 (Line by Line)
| 1. score = 85 2. score >= 90 → False 3. score >= 80 → True 4. "B" 출력 5. 아래 else는 보지도 않고 종료 #중요한 점: elif는 위 조건이 False일 때만 검사된다 |
조건문에서 사용되는 비교 & 논리 연산자
비교연산자
| 연산자 | 의미 | 예시 |
| == | 같다 | x == y |
| != | 다르다 | x != y |
| > | 크다 | x > y |
| < | 작다 | x < y |
| >= | 크거나 같다 | x >= y |
| <= | 작거나 같다 | x <= y |
비교 연산자의 결과는 항상 Boolean 값(True / False) 이다.
조건문의 “판단 기준” 역할을 한다
논리 연산자 실제 동작 방식
| 연산자 | 의미 |
| and | 둘 다 True |
| or | 하나라도 True |
| not | 반대 |
⭐ [중요 개념] 논리 연산자의 실제 동작 방식 (단축 평가) ⭐
A and B
• A가 True → B 반환
• A가 False → A 반환
A or B
• A가 True → A 반환
• A가 False → B 반환
조건문에서 논리 연산자가 문제없이 동작하는 이유
조건문에서는 반환된 값 자체를 True / False로 해석하기 때문이다.
if 5 and 10:
print("실행됨")
• 5 and 10 → 10 반환
• 10은 True로 해석됨 → 조건문 실행
조건문 보조 문법
in / not in 연산자
개념
• in: 포함되어 있는가
• not in: 포함되어 있지 않은가
예시: 글자 안에 'a'가 있는지 확인하기
text = "apple"
if "a" in text:
print("a가 포함됨")
pass 구문
IF구문이 참이여도 해당 코드블럭에서 아무런 행동을 하지 않고 넘긴다 를 의미한다.
조건을 만들었지만, 아직 실행할 코드가 없을때 사용된다.
if score >= 60:
pass
조건문의 확장 표현
중첩 if 문
조건문 안에 또 다른 조건문을 넣는 구조
age = 20
is_student = True
if age >= 18:
if is_student:
print("성인 학생입니다.")
else:
print("성인이지만 학생은 아닙니다.")
수도코드
| 만약 점수가 60 이상이면 만약 점수가 90 이상이면 "A" 아니면 "B" 아니면 "불합격" |
실행 순서 (Line by Line)
| 1. score >= 60 → True 2. 안쪽 if로 진입 3. score >= 90 → False 4. 안쪽 else 실행 → "B" |
삼항 연산자 (조건부 표현식)
값1 if 조건 else 값2
한 줄로 조건을 처리할 때 사용한다.
score = 70
result = "합격" if score >= 60 else "불합격"
print(result)
수도코드
| 만약 점수가 60 이상이면 "합격" 아니면 "불합격" |
실행 순서 (Line by Line)
| 1. score >= 60 평가 2. True → "합격" 선택 3. result에 저장 4. 출력 |
만약 읽기 어렵다면 if 구문을 사용하자. 삼항 연산자는 단순한 경우에만 사용하는것을 권장한다.
STEP 2. 반복문 (Loop Statements)
코드블록을 일정 규칙에 따라 반복시키는 문법이다.
같은 코드를 여러 번 실행해야 할 때 사용하며, 가독성과 유지보수성을 크게올린다.
반복문의 종류
for 문
• 반복 횟수나 대상이 명확할 때 사용
• 리스트, 문자열, range 등 반복 가능한 객체(iterable)를 순회
• 데이터 분석에서 가장 자주 사용됨
while 문
• 반복 횟수가 정해져 있지 않고, 조건에 따라 반복을 종료해야 할 때 사용
• 조건이 계속 True이면 무한 반복이 발생할 수 있어 주의 필요
for 문
for 변수 in 반복가능한객체:
실행할 코드
핵심 개념
• 반복가능한객체(iterable) : 내부에 여러 값을 순서대로 가지고 있는 객체
• 변수 : 매 반복마다 하나씩 값을 받아 저장하는 역할
for 문은 다음 흐름으로 동작한다.
• 첫 번째 값을 꺼낸다
• 변수에 저장한다
• 블록 내부 코드를 실행한다
• 다음 값이 있으면 다시 반복한다
• 더 이상 값이 없으면 반복 종료
numbers = [1, 2, 3, 4, 5]
for num in numbers:
print(num)
반복 대상(iterable)의 개념
for문이 하나씩 꺼내서 사용할 수 있도록 내부에 여러 값을 순서대로 가진 객체를 말한다.
for문은 iterable에게 “다음 값 하나 줘”를 계속 요청하면서 반복을 수행한다.
대표작인 예시
• 리스트(list)
• 튜플(tuple)
• 문자열(str)
• range 객체
• 딕셔너리 (기본은 key)
range() 함수
연속된 정수 시퀀스를 만들어 주는 반복 가능한 객체(iterable)다
중요한 점은, 실제 리스트를 미리 만들지 않고, 필요할 때마다 숫자를 하나씩 생성한다는 점이다.
기본 형태
range(start, stop, step)
range(start, end, step) 시작값 / 끝값 / 증가값
• start: 시작 값을 나타낸다 (생략 가능)
• stop: 끝 값을 나타낸다. (지정 필수) 단, 실제로 생성되는 마지막 숫자는 이 값보다 작다.
• step: 각 숫자 사이의 간격. (생략 가능)
⭐핵심 규칙 (가장 중요)⭐
range는 start부터 stop 직전까지 숫자를 만든다.
즉, stop은 절대 포함되지 않는다.
for문에서의 실제 동작 흐름
for i in range(3):
print(i)
#출력
0
1
2
range는 3이지만 2까지만 출력
역순 range
range(5, 0, -1)
# 생성: 5, 4, 3, 2, 1
이유:
• 시작: 5
• 끝: 0 (포함 안 됨)
• 감소 방향이므로 step은 음수여야 함
for 문 활용
리스트 순회
리스트에 순서대로 접근해. 첫 번째 요소부터 마지막 요소까지 코드블럭 실행
numbers = [1, 2, 3, 4, 5]
for num in numbers:
print(num, end = " ")

문자열 순회
문자열의 각 문자를 순서대로 접근해 하나씩 처리
for letter in "hello":
print(letter, end = " ")

while 문
while 조건:
실행할 코드
while 문은 조건식이 True인 동안 코드 블록을 반복 실행하는 반복문이다.
반복 횟수가 정해져 있지 않고, 상태(조건)에 따라 반복을 제어할 때 주로 사용한다.
핵심 개념
• 조건식이 True인 동안 계속 반복
• 반복을 멈추려면 조건이 False가 되도록 직접 제어해야 함
• 반복 횟수보다 조건의 변화가 핵심
while 문은 다음 흐름으로 동작한다.
count = 0
while count < 3:
print(count)
count += 1
실행 순서:
| 1. 조건 count < 3 평가 2. True → 코드 블록 실행 3. count += 1로 조건에 영향을 주는 값 변경 4. 다시 조건 평가 5. False가 되면 반복 종료 |
조건 기반 반복
while 문은 “몇 번 반복할지”가 아니라 “언제까지 반복할지”를 기준으로 동작한다
예시:
• 사용자가 특정 값을 입력할 때까지 반복
• 값이 일정 범위를 벗어날 때까지 반복
• 조건이 만족되지 않을 때까지 계속 처리
password = ""
while password != "1234":
password = input("비밀번호 입력: ")
이처럼 조건이 바뀌는 시점이 반복 종료 시점이 된다.
무한 루프 주의사항
무한 루프란 조건이 항상 True인 상태로 유지되어 반복이 끝나지 않는 상황이다.
while True:
print("계속 실행됨")
이 경우 조건이 바뀌지 않기 때문에 프로그램이 멈추지 않는다.
이를 해결하기 위해선
1. 조건에 영향을 주는 변수를 반드시 변경
count = 0
while count < 5:
print(count)
count += 1
2. break를 이용해 강제로 종료
while True:
x = input("종료하려면 q 입력: ")
if x == "q":
break
반복문 제어
반복문 내부에서 흐름을 세밀하게 제어하기 위해 사용한다.
조건이 복잡해질수록 break / continue를 적절히 사용하면 가독성이 좋아진다
break
• 반복문을 즉시 종료
• 반복 조건과 무관하게 루프를 빠져나감
for i in range(1, 11):
if i == 5:
break
print(i)
i가 5가 되는 순간 break가 실행되어 반복을 멈춘다. 따라서 5 이후의 숫자는 출력되지 않는다.
continue
• 현재 반복만 건너뜀
• 다음 반복으로 즉시 이동
for i in range(1, 11):
if i == 5:
continue
print(i)
i가 5일 때 continue로 인해 아래 print(i) 부분을 건너뛰고 다음 반복으로 넘어간다.
반복문의 확장 표현
반복문의 else 구조
파이썬의 반복문에는 특이하게 else 절이 존재하며 반목문이 정상적으로 종료될때 else 절을 시행한다.
핵심 규칙
• break 없이 반복문이 끝나면 → else 실행
• break가 한 번이라도 실행되면 → else 실행 안 됨
• continue는 영향 없음
#else 실행 o
for i in range(3):
if i == 1:
continue
print(i)
else:
print("끝")
#else 실행 x
for i in range(5):
if i == 3:
break
else:
print("완료")
중첩 반복문
중첩 반복문은 반복문 안에 또 다른 반복문이 들어 있는 구조이다.
바깥 반복문이 한 번 실행될 때마다 안쪽 반복문은 전체를 다시 실행한다.
for i in range(2):
for j in range(3):
print(i, j)

실행 순서 (Line by Line)
1. i = 0
2. j = 0, 1, 2 순서대로 실행
3. i = 1
4. 다시 j = 0, 1, 2 실행
5. 모든 조합이 끝나면 종료
추가 개념
컴프리헨션이란?
반복문과 조건문을 사용해 컬렉션(list, dict, set 등)을 간결하게 생성하는 문법이다.
[표현식 for 변수 in 반복가능객체]
[표현식 for 변수 in 반복가능객체 if 조건]
읽는 순서
- for x in range(...)
- if 조건
- 맨 앞의 표현식
# 일반적인 for문
result = []
for x in range(1, 6):
result.append(x)
# 리스트 컴프리헨션
result = [x for x in range(1, 6)]

실행 순서 (Line by Line)
| 1. range(1, 6) 생성 2. 첫 값 x = 1 3. 표현식 x 실행 → 1 4. 리스트에 추가 5. 반복 종료까지 반복 |
'G.파이썬 > 파이썬 기초 복습' 카테고리의 다른 글
| [Python] 함수와 모듈 (0) | 2026.01.15 |
|---|---|
| [Python] 자료형 STEP 3. 딕셔너리 (0) | 2026.01.14 |
| [Python] 자료형 STEP 2. 튜플 (0) | 2026.01.14 |
| [Python] 자료형 STEP 1. 리스트 (0) | 2026.01.13 |
| [Python] 입출력과 변수형 (0) | 2026.01.12 |
