[Python] for문과 while문 실전 활용
반복문은 프로그래밍의 기본 중의 기본이다. Python의 for문과 while문을 효과적으로 사용하는 방법을 알아보자.
반복문 기초
for문 기본 구조
# 리스트 순회
fruits = ['apple', 'banana', 'orange']
for fruit in fruits:
print(fruit)
# 문자열 순회
message = "Python"
for char in message:
print(char)
# 인덱스와 함께 순회
for index, fruit in enumerate(fruits):
print(f"{index}번째 과일: {fruit}")
while문 기본 구조
# 기본 while문
count = 0
while count < 5:
print(count)
count += 1
# 조건 기반 while문
number = 10
while number > 0:
print(number)
number -= 2
range 함수
range 기본 활용
# 기본 범위
for i in range(5): # 0부터 4까지
print(i)
# 시작과 끝 지정
for i in range(2, 6): # 2부터 5까지
print(i)
# 간격 지정
for i in range(0, 10, 2): # 0, 2, 4, 6, 8
print(i)
# 역순 반복
for i in range(5, 0, -1): # 5, 4, 3, 2, 1
print(i)
range 활용 예제
# 리스트 생성
numbers = list(range(1, 6)) # [1, 2, 3, 4, 5]
# 특정 횟수만큼 반복
for _ in range(3): # 3번 반복
print("Hello")
# 구구단 출력
for i in range(2, 10):
for j in range(1, 10):
print(f"{i} x {j} = {i*j}")
break와 continue
break 활용
# 특정 조건에서 반복 중단
for number in range(1, 11):
if number == 5:
break
print(number)
# 사용자 입력 처리
while True:
answer = input("계속하시겠습니까? (y/n): ")
if answer.lower() == 'n':
break
continue 활용
# 짝수만 출력
for number in range(1, 6):
if number % 2 != 0: # 홀수면 건너뛰기
continue
print(number)
# 특정 조건 제외
numbers = [1, -2, 3, -4, 5]
for num in numbers:
if num < 0:
continue
print(num) # 양수만 출력
중첩 반복문
기본 중첩 반복문
# 좌표 생성
for x in range(3):
for y in range(3):
print(f"({x}, {y})")
# 별표 패턴 출력
for i in range(5):
for j in range(i + 1):
print("*", end="")
print() # 줄바꿈
실전 활용 예제
# 2차원 리스트 처리
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
# 모든 요소 출력
for row in matrix:
for num in row:
print(num, end=" ")
print()
# 행렬 덧셈
matrix1 = [[1, 2], [3, 4]]
matrix2 = [[5, 6], [7, 8]]
result = []
for i in range(len(matrix1)):
row = []
for j in range(len(matrix1[0])):
row.append(matrix1[i][j] + matrix2[i][j])
result.append(row)
고급 활용 예제
리스트 컴프리헨션과 비교
# 일반적인 for문
squares = []
for i in range(10):
squares.append(i**2)
# 리스트 컴프리헨션
squares = [i**2 for i in range(10)]
# 조건부 리스트 컴프리헨션
even_squares = [i**2 for i in range(10) if i % 2 == 0]
반복문과 함께 사용하는 유용한 함수들
# zip 활용
names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]
for name, age in zip(names, ages):
print(f"{name}는 {age}살입니다")
# filter 활용
numbers = [1, -2, 3, -4, 5]
positive = filter(lambda x: x > 0, numbers)
print(list(positive)) # [1, 3, 5]
실용적인 예제
def find_prime_numbers(n):
"""에라토스테네스의 체 구현"""
sieve = [True] * (n + 1)
sieve[0] = sieve[1] = False
for i in range(2, int(n ** 0.5) + 1):
if sieve[i]:
for j in range(i * i, n + 1, i):
sieve[j] = False
return [i for i in range(n + 1) if sieve[i]]
primes = find_prime_numbers(30)
print(primes)
성능 고려사항
- 불필요한 반복 줄이기
# 나쁜 예 for i in range(len(array)): print(array[i]) # 좋은 예 for item in array: print(item)
2. 루프 최적화
# 자주 사용하는 값은 루프 밖에서 계산
length = len(array) # 한 번만 계산
for i in range(length):
# 코드 작성
'개발&프로그래밍' 카테고리의 다른 글
[Python] 모듈과 패키지 (0) | 2024.11.26 |
---|---|
[Python] if문과 조건문 (0) | 2024.11.26 |
[Python] 에러와 예외 처리 기초 (1) | 2024.11.22 |
[python] 함수 작성법과 활용 (1) | 2024.11.21 |
[python] 파일 입출력 기초 가이드 (1) | 2024.11.20 |
댓글