본문 바로가기

파이썬 반복문: 제어 흐름과 논리

발견의끝 2024. 11. 30.

반복문

반복문은 특정 작업을 여러 번 반복해서 실행할 때 사용하는 프로그래밍 구조입니다. Python에서는 주로 for 반복문과 while 반복문을 사용하며, 각각의 용도와 동작 방식이 다릅니다. 반복문은 코드의 효율성을 높이고, 복잡한 작업을 간결하게 표현할 수 있도록 도와줍니다. 이 글에서는 for와 while 반복문의 구조와 특징을 살펴보고, 다양한 예제와 연습문제를 통해 반복문의 활용 방법을 익혀보겠습니다.

for 반복문

for 반복문은 주어진 시퀀스(리스트, 문자열, 튜플 등)를 순회하며 각 요소에 대해 작업을 수행할 때 사용됩니다. for 반복문은 반복 횟수가 명확하거나, 특정 시퀀스의 모든 요소를 처리할 때 유용합니다.

기본 구조

for 반복문의 기본 문법은 다음과 같습니다:

for 변수 in 시퀀스:
    실행할 코드
  • 변수: 시퀀스의 각 요소를 순서대로 저장하는 변수입니다.
  • 시퀀스: 리스트, 문자열, 튜플 등의 순회 가능한 객체입니다.
  • 실행할 코드: 반복문이 실행되는 동안 실행될 코드 블록입니다.

예제 1: 리스트의 요소 출력하기

리스트의 모든 요소를 출력하는 간단한 for 반복문입니다.

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

출력:

apple
banana
cherry

예제 2: 문자열의 각 문자 출력하기

문자열도 시퀀스이므로, 각 문자를 순회할 수 있습니다.

word = "Python"
for char in word:
    print(char)

출력:

P
y
t
h
o
n

예제 3: range() 함수 사용하기

range() 함수는 특정 범위의 숫자를 생성하는 유용한 함수로, for 반복문에서 자주 사용됩니다.

for i in range(5):
    print(i)

출력:

0
1
2
3
4

range(5)는 0부터 4까지의 숫자를 생성합니다.

while 반복문

while 반복문은 조건식이 True인 동안 코드 블록을 반복 실행합니다. 반복 횟수가 정해지지 않았거나 조건에 따라 반복을 제어해야 할 때 적합합니다.

기본 구조

while 반복문의 기본 문법은 다음과 같습니다:

while 조건식:
    실행할 코드

  • 조건식: True 또는 False로 평가될 수 있는 표현식입니다.
  • 실행할 코드: 조건이 참일 때 반복 실행되는 코드 블록입니다.

예제 1: 숫자 카운트하기

while 반복문을 사용하여 0부터 4까지 숫자를 출력하는 예제입니다.

count = 0
while count < 5:
    print(count)
    count += 1

출력:

0
1
2
3
4

예제 2: 사용자 입력 받기

사용자로부터 비밀번호를 입력받아 올바른 비밀번호가 입력될 때까지 반복하는 프로그램입니다.

password = ""
while password != "python123":
    password = input("비밀번호를 입력하세요: ")
print("비밀번호가 맞습니다!")

사용자가 "python123"을 입력할 때까지 반복합니다.

반복문 제어문 (break, continue)

break 문

break 문은 반복문을 즉시 종료합니다. 조건에 따라 반복을 중단하고 싶을 때 유용합니다.

for i in range(10):
    if i == 5:
        break
    print(i)

출력:

0
1
2
3
4

i가 5가 되면 반복문이 종료됩니다.

continue 문

continue 문은 현재 반복을 건너뛰고 다음 반복으로 진행합니다.

for i in range(5):
    if i == 2:
        continue
    print(i)

출력:

0
1
3
4

i가 2일 때 print(i)를 건너뛰고, 다음 반복이 실행됩니다.

연습문제

1부터 10까지의 숫자 출력

for i in range(1, 11): 
	print(i)

 

리스트 요소 제곱 출력

 

numbers = [1, 2, 3, 4, 5] 
for num in numbers:
	print(num ** 2)

 

0부터 20까지 짝수 출력

 

for i in range(0, 21, 2):
    print(i)


1부터 10까지의 합 계산

 

total = 0 for i in range(1, 11): total += i print(total)

 

사용자 입력 받기

 

user_input = "" 
while user_input != "exit": 
	user_input = input("입력하세요 (exit 입력 시 종료됩니다): ")

실습과제

리스트 요소의 합 구하기

numbers = []
for _ in range(5):
    num = int(input("숫자를 입력하세요: "))
    numbers.append(num)
print("리스트의 합:", sum(numbers))

구구단 출력하기

사용자로부터 단(2-9)을 입력받아 해당 단의 구구단을 출력하세요.

dan = int(input("출력할 단을 입력하세요 (2-9): "))
for i in range(1, 10):
    print(f"{dan} x {i} = {dan * i}")

 

숫자 추측 게임

컴퓨터가 1부터 20 사이의 숫자를 선택하고 사용자가 맞출 때까지 반복합니다.

import random
target = random.randint(1, 20)
guess = 0
while guess != target:
    guess = int(input("숫자를 맞춰보세요 (1-20): "))
    if guess < target:
        print("더 큰 숫자입니다.")
    elif guess > target:
        print("더 작은 숫자입니다.")
print("정답입니다!")

 

홀짝 판별기

사용자로부터 숫자를 입력받아 홀수인지 짝수인지 판단하며, '종료' 입력 시 프로그램을 종료합니다.

while True:
    user_input = input("숫자를 입력하세요 (종료 입력 시 종료됩니다): ")
    if user_input == "종료":
        break
    num = int(user_input)
    if num % 2 == 0:
        print("짝수입니다.")
    else:
        print("홀수입니다.")

 

팩토리얼 계산기

  입력받은 숫자의 팩토리얼을 계산하는 프로그램을 작성하세요.

num = int(input("팩토리얼을 계산할 숫자를 입력하세요: "))
factorial = 1
for i in range(1, num + 1):
    factorial *= i
print(f"{num}의 팩토리얼은 {factorial}입니다.")

 

 

 

 

 

댓글