파이썬 강의 5편: 반복문 (for, while)
· 4분 읽기
파이썬 강의 5편: 반복문 (for, while)
반복문이란?
반복문은 특정 코드를 여러 번 실행할 수 있게 해주는 제어문입니다. 같은 작업을 반복해야 할 때 유용합니다.
for 문
정해진 횟수만큼 또는 시퀀스의 각 요소에 대해 반복합니다:
기본 형식
for 변수 in 시퀀스:
# 반복 실행할 코드
리스트 순회
fruits = ["사과", "바나나", "오렌지"]
for fruit in fruits:
print(fruit)
출력:
사과
바나나
오렌지
range() 함수 사용
# 0부터 9까지
for i in range(10):
print(i)
# 1부터 10까지
for i in range(1, 11):
print(i)
# 0부터 10까지, 2씩 증가
for i in range(0, 11, 2):
print(i)
문자열 순회
word = "Python"
for char in word:
print(char)
출력:
P
y
t
h
o
n
while 문
조건이 참인 동안 반복합니다:
기본 형식
while 조건:
# 반복 실행할 코드
예시
count = 0
while count < 5:
print(count)
count += 1
출력:
0
1
2
3
4
반복문 제어
break 문
반복문을 즉시 종료합니다:
for i in range(10):
if i == 5:
break
print(i)
출력:
0
1
2
3
4
continue 문
현재 반복을 건너뛰고 다음 반복으로 넘어갑니다:
for i in range(10):
if i % 2 == 0:
continue # 짝수면 건너뛰기
print(i)
출력:
1
3
5
7
9
else 문
반복문이 정상적으로 완료되면 실행됩니다:
for i in range(5):
print(i)
else:
print("반복 완료!")
break로 종료되면 else 실행 안 됨:
for i in range(5):
if i == 3:
break
print(i)
else:
print("이 메시지는 출력되지 않습니다.")
중첩 반복문
반복문 안에 또 다른 반복문을 사용할 수 있습니다:
# 구구단 출력
for i in range(1, 10):
for j in range(1, 10):
print(f"{i} x {j} = {i * j}")
print() # 줄바꿈
실전 예제: 숫자 합계 구하기
# 1부터 100까지의 합
total = 0
for i in range(1, 101):
total += i
print(f"1부터 100까지의 합: {total}")
실전 예제: 팩토리얼 계산
n = int(input("숫자를 입력하세요: "))
factorial = 1
for i in range(1, n + 1):
factorial *= i
print(f"{n}! = {factorial}")
실전 예제: 소수 찾기
n = int(input("숫자를 입력하세요: "))
is_prime = True
if n < 2:
is_prime = False
else:
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
is_prime = False
break
if is_prime:
print(f"{n}는 소수입니다.")
else:
print(f"{n}는 소수가 아닙니다.")
실전 예제: 별 찍기
# 직각삼각형
n = int(input("줄 수를 입력하세요: "))
for i in range(1, n + 1):
print("*" * i)
# 역직각삼각형
for i in range(n, 0, -1):
print("*" * i)
# 피라미드
for i in range(1, n + 1):
spaces = " " * (n - i)
stars = "*" * (2 * i - 1)
print(spaces + stars)
실전 예제: 숫자 맞추기 게임
import random
answer = random.randint(1, 100)
attempts = 0
print("1부터 100 사이의 숫자를 맞춰보세요!")
while True:
guess = int(input("숫자를 입력하세요: "))
attempts += 1
if guess == answer:
print(f"정답입니다! {attempts}번 만에 맞췄습니다.")
break
elif guess < answer:
print("더 큰 숫자입니다.")
else:
print("더 작은 숫자입니다.")
실전 예제: 리스트 처리
# 점수 리스트에서 평균 구하기
scores = [85, 90, 78, 92, 88]
total = 0
for score in scores:
total += score
average = total / len(scores)
print(f"평균 점수: {average:.2f}")
# 최고점과 최저점 찾기
max_score = scores[0]
min_score = scores[0]
for score in scores:
if score > max_score:
max_score = score
if score < min_score:
min_score = score
print(f"최고점: {max_score}, 최저점: {min_score}")
enumerate() 함수
인덱스와 값을 함께 가져올 수 있습니다:
fruits = ["사과", "바나나", "오렌지"]
for index, fruit in enumerate(fruits):
print(f"{index + 1}. {fruit}")
출력:
1. 사과
2. 바나나
3. 오렌지
zip() 함수
여러 리스트를 동시에 순회할 수 있습니다:
names = ["홍길동", "김철수", "이영희"]
ages = [25, 30, 28]
for name, age in zip(names, ages):
print(f"{name}: {age}세")
출력:
홍길동: 25세
김철수: 30세
이영희: 28세
무한 루프
조건이 항상 참인 반복문입니다:
# 무한 루프 (주의!)
while True:
user_input = input("명령어를 입력하세요 (종료: quit): ")
if user_input == "quit":
break
print(f"입력한 명령어: {user_input}")
for vs while 언제 사용할까?
- for: 반복 횟수가 정해져 있거나 시퀀스를 순회할 때
- while: 조건에 따라 반복할 때
다음에 공부할 내용
다음 포스트에서는 함수에 대해 공부해보겠습니다.