Search

파이썬 이론 3회차

조건문과 반복문 (if / for / while)

1. 조건문 (if, elif, else)

개념

조건문은 조건에 따라 실행 여부를 결정하는 문법입니다.
예를 들어,
점수가 90점 이상이면 “A”
그렇지 않으면 “B”
이런 식으로 프로그램이 판단을 내릴 수 있게 만듭니다.

기본 구조

if 조건식: 실행문1 elif 다른_조건식: 실행문2 else: 실행문3
Python
복사
if는 첫 번째 조건, elif는 추가 조건, else는 그 외의 경우를 의미합니다.

짝수/홀수 판별기

num = int(input("숫자를 입력하세요: ")) if num % 2 == 0: print("짝수입니다.") else: print("홀수입니다.")
Python
복사
출력 예시
숫자를 입력하세요: 13 홀수입니다.
Plain Text
복사
num % 2는 나머지를 구하는 연산이에요. 나머지가 0이면 짝수, 1이면 홀수죠.

나이대 분류기

age = int(input("나이를 입력하세요: ")) if age < 13: print("어린이입니다.") elif age < 20: print("청소년입니다.") elif age < 65: print("성인입니다.") else: print("노년층입니다.")
Python
복사
출력 예시
나이를 입력하세요: 45 성인입니다.
Plain Text
복사
elif를 여러 개 쓸 수 있어요. 위에서부터 차례로 비교하므로 먼저 참이 되는 조건에서 멈춥니다.

점수에 따른 학점 출력

score = int(input("점수를 입력하세요: ")) if score >= 90: print("A 학점입니다.") elif score >= 80: print("B 학점입니다.") elif score >= 70: print("C 학점입니다.") else: print("재시험 대상입니다.")
Python
복사
출력 예시:
점수를 입력하세요: 85 B 학점입니다.
Plain Text
복사

2. 반복문 (for, while)

개념

반복문은 같은 동작을 여러 번 수행하는 문법입니다.
데이터가 여러 개일 때, 일일이 다루지 않고 자동으로 처리할 수 있습니다.

for 문 기본 구조

for 변수 in 반복대상: 실행문
Python
복사

리스트 순회

fruits = ["사과", "바나나", "딸기"] for f in fruits: print(f)
Python
복사
출력:
사과 바나나 딸기
Plain Text
복사

리스트에서 짝수만 출력

numbers = [3, 8, 12, 7, 10, 5, 2] for n in numbers: if n % 2 == 0: print(f"{n}은(는) 짝수입니다.")
Python
복사
출력
8은(는) 짝수입니다. 12은(는) 짝수입니다. 10은(는) 짝수입니다. 2은(는) 짝수입니다.
Plain Text
복사
조건문과 반복문을 조합하면 “데이터 중 일부만” 골라낼 수 있어요.
이런 구조는 데이터 필터링의 기초입니다.

별(*) 삼각형 출력

for i in range(1, 6): print("*" * i)
Python
복사
출력
* ** *** **** *****
Plain Text
복사
문자열도 곱셈(*) 연산이 가능해서, *를 여러 번 반복할 수 있습니다.
이 예제는 반복문과 문자열 연산의 결합 예시입니다.

범위(range)로 반복

for i in range(1, 6): print(i)
Python
복사
출력:
1 2 3 4 5
Plain Text
복사
range(시작, 끝)은 끝 바로 전까지 반복합니다.

1부터 N까지의 합 구하기

n = int(input("N을 입력하세요: ")) total = 0 for i in range(1, n+1): total += i print(f"1부터 {n}까지의 합은 {total}입니다.")
Python
복사
출력
N을 입력하세요: 10 1부터 10까지의 합은 55입니다.
Plain Text
복사
누적 계산(+=)은 반복문에서 가장 많이 쓰이는 패턴이에요.

while 문 기본 구조

while 조건식: 실행문
Python
복사
조건식이 참(True) 인 동안 계속 반복합니다.

카운트다운

n = 5 while n > 0: print(n) n -= 1 print("발사!")
Python
복사
출력
5 4 3 2 1 발사!
Plain Text
복사
while은 조건이 True일 동안 계속 실행됩니다.
조건이 False가 되면 종료돼요.

숫자 누적합

n = 1 total = 0 while n <= 5: total += n n += 1 print(f"합계: {total}")
Python
복사
출력:
합계: 15
Plain Text
복사

반복 제어문

문법
설명
예시
break
반복문 즉시 종료
if i == 3: break
continue
다음 반복으로 넘어감
if i == 3: continue

break

for i in range(1, 10): if i == 5: break print(i) print("break 이후 반복 종료")
Python
복사
출력:
1 2 3 4 break 이후 반복 종료
Plain Text
복사

continue

for i in range(1, 10): if i == 5: continue print(i) print("continue 이후 다음 반복 진행")
Python
복사
출력:
1 2 3 4 6 7 8 9 continue 이후 다음 반복 진행
Plain Text
복사
break는 반복 자체를 멈추고,
continue는 “이번 반복만 건너뛴다”는 뜻이에요.

3. 조건문 + 반복문 결합 예제

점수 합격자 판별

scores = [88, 95, 67, 70, 100] for s in scores: if s >= 80: print(f"{s}점 → 합격") else: print(f"{s}점 → 불합격")
Python
복사
출력:
88점 → 합격 95점 → 합격 67점 → 불합격 70점 → 불합격 100점 → 합격
Plain Text
복사
이렇게 리스트와 조건문을 함께 쓰면 데이터 일괄 처리가 가능합니다.

리스트에서 특정 값 찾기

nums = [10, 20, 30, 40, 50] target = int(input("찾고 싶은 숫자 입력: ")) found = False for n in nums: if n == target: found = True break if found: print(f"{target}이(가) 리스트에 있습니다.") else: print(f"{target}이(가) 리스트에 없습니다.")
Python
복사
출력
찾고 싶은 숫자 입력: 30 30이(가) 리스트에 있습니다.
Plain Text
복사
이런 구조는 실제 검색 알고리즘의 기본이에요.

라이브 코드

# 흐름과 제어 # 조건문, 반복문, 둘의 결합 ''' 조건문 if: 만약에~ if 조건식: (true) 실행문1("짝수입니다") elif 다른 조건식: (1-> false) (true) 실행문2("홀수입니다") else: 0이나 문자열 ("짝수도 홀수도 아닙니다.") ''' ''' if 오늘이 월요일: (true) 월요일입니다 elif 오늘 화요일: (true) 화요일입니다 elif 오늘 수요일: (true) 수요일입니다 elif 오늘 목요일: (true) 목요일입니다 elif 오늘 금요일: (true) 금요일입니다 else: 주말입니다 ''' # 홀수 짝수 판별 # if 짝수: # true "짝수입니다" # elif 홀수: # true "홀수입니다" # else: # "홀수도 짝수도 아닙니다." # // 몫 # % 나머지 # 숫자 / 2 -> 나머지 0(나누어 떨어지면) -> 짝수 # num = int(input()) # if num % 2 == 0: # print("짝수입니다.") # elif num % 2 != 0: # print("홀수입니다.") # else: # print("짝수도 홀수도 아닙니다.") # 반복문 # 같은 동작을 여러 번 해야할 때 # for, while -> 자료구조와 연결시켜서 생각하기 # 문법 구조 ''' for 변수 in 반복할 대상: 반복할 내용 ''' # 리스트 순회 # for ... in 반복할 리스트 # fruits = ["사과", "바나나", "딸기"] # print(fruits[0]) # "사과" # print(fruits[1]) # "바나나" # print(fruits[2]) # "딸기" # for fruit in fruits: # print(fruit) # 1: fruit = fruits[0] = 사과 # 2: fruit = fruits[1] = 바나나 # 3: fruit = fruits[2] = 딸기 # for ... in range(1, n+1): # range -> 위치값이 필요 # 횟수까지 고려 -> 위치값(인덱스값) 필요 # for i in range(1, 6): # print(i) n = int(input("N을 입력해주세요.")) total = 0 for i in range(1, n+1): # 1, 2, 3, 4, 5 # total = total + i # total = 0 + 1 (i = 1) # total = 1 + 2 (i = 2) # total = 3 + 3 (i = 3) # total = 6 + 4 (i = 4) # total = 10 + 5 (i = 5) total += i print(total) print(total) # i = 1 -> total + 1 -> total = 1 # i = 2 -> total + 2 -> total = 3 # i = 3 -> total + 3 -> total = 6 # i = 4 -> total + 4 -> total = 10 # i = 5 -> total + 5 -> total = 15 # for -> 순회할 공간, 횟수를 지정해주는 반복분 # while -> 횟수 지정할 수 없을 때(어떤 특정 조건에서 동작하게) ''' [1, 3, 5, 7, 8] while 조건식: 실행문 특정 조건에서만 동작하게 하는 반복문 ''' n = 5 while n > 0: # n이 0보다 클때(까지) -> 아니요 false print(n) n -= 1 # n = 5 - 1 # n = 4 - 1 # n = 3 - 1 # n = 2 - 1 # n = 1 - 1 print("발사!") # if문, for문(for in , for in range), while문 # 손으로 적기
Python
복사
Copyright ⓒ 2025 TeamSparta All rights reserved.