본문 바로가기
파이썬기초(Python Basic)

파이썬 반복문의 이해

by 친절한에릭 2023. 4. 22.

파이썬 반복문의 이해

 

파이썬은 프로그래밍을 처음 시작하는 사람들에게도 쉽게 접근할 수 있는 언어입니다. 그 중 반복문은 프로그래밍에서 가장 핵심적인 개념 중 하나로, 코드의 일부분을 반복적으로 실행하고자 할 때 사용됩니다. 이번 글에서는 파이썬의 대표적인 반복문인 for문과 while문을 중점적으로 다루며, 흥미로운 예제들을 통해 실습해보도록 하겠습니다.

 

for문 기초

파이썬에서 가장 많이 사용되는 반복문은 바로 for문입니다. for문은 특정 범위 내에서 반복 작업을 수행하며, 다양한 데이터 타입과 함께 사용할 수 있습니다. 다음은 기본적인 for문의 구조입니다.

 

for 변수 in 범위:
    수행할 코드

 

for문과 리스트

리스트는 여러 개의 값을 하나의 변수에 저장할 수 있는 파이썬의 자료 구조입니다. for문과 함께 사용하면, 리스트의 모든 원소를 순서대로 처리할 수 있습니다. 예를 들어, 다음과 같은 코드를 작성할 수 있습니다.

 

fruits = ["사과", "바나나", "딸기"]
for fruit in fruits:
    print(fruit)

 

for문과 튜플

 

튜플은 리스트와 비슷하지만, 값을 변경할 수 없는 불변(immutable)한 자료 구조입니다. 리스트와 마찬가지로 for문과 함께 사용할 수 있습니다.

 

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

 

for문과 딕셔너리

 

딕셔너리는 키와 값이 한쌍으로 이루어진 자료 구조입니다. for문을 사용하면 딕셔너리의 키와 값을 순차적으로 처리할 수 있습니다. 다음과 같은 코드를 작성할 수 있습니다.

 

student_scores = {"철수": 90, "영희": 85, "민수": 95}
for name, score in student_scores.items():
    print(name, ":", score)

 

while문 기초

 

while문은 조건이 참(True)인 동안 코드를 반복 실행합니다. 조건을 검사한 후, 조건이 참이면 코드를 실행하고, 조건이 거짓(False)이면 반복을 종료합니다.

 

count = 0
while count < 5:
    print("Hello, Python!")
    count += 1

 

while문 사용 예시

while문은 주로 반복 횟수가 미리 정해지지 않은 경우에 사용합니다. 예를 들어, 사용자로부터 입력 받은 숫자가 0이 될 때까지 숫자를 입력 받는 프로그램을 작성할 수 있습니다.

 

number = int(input("숫자를 입력하세요: "))
while number != 0:
    number = int(input("숫자를 입력하세요: "))
print("0을 입력하여 종료합니다.")

 

무한 반복문과 break, continue

무한 반복문은 조건을 만족할 때까지 끝없이 반복되는 반복문입니다. 이때 break와 continue를 사용하여 반복문의 흐름을 제어할 수 있습니다.

 

무한 반복문의 주의사항

무한 반복문은 종료 조건이 없거나 제대로 작동하지 않을 경우, 프로그램이 무한히 실행됩니다. 따라서 종료 조건을 꼭 명시해야 합니다.

 

break 사용 예시

break문은 반복문을 강제로 종료할 때 사용합니다. 예를 들어, 1부터 100까지 더했을 때 합계가 1000을 초과하는 경우를 찾고 싶다면 다음과 같이 작성할 수 있습니다.

 

sum = 0
for i in range(1, 101):
    sum += i
    if sum > 1000:
        break
print("합계가 1000을 초과하는 숫자:", i)

 

continue 사용 예시

continue문은 반복문의 나머지 부분을 건너뛰고 다음 반복으로 넘어갈 때 사용합니다. 예를 들어, 짝수만 출력하고 싶다면 다음과 같이 작성할 수 있습니다.

 

for i in range(1, 11):
    if i % 2 != 0:
        continue
    print(i)

 

반복문 중첩

반복문 안에 다른 반복문을 중첩하여 사용할 수 있습니다. 중첩 반복문은 이차원 배열이나 행렬 연산, 좌표 시스템 등 다양한 상황에서 사용됩니다.

 

중첩 for문

중첩 for문은 for문 안에 또 다른 for문을 사용하는 경우입니다. 예를 들어, 구구단을 출력하는 프로그램을 작성할 수 있습니다.

 

for i in range(2, 10):
    for j in range(1, 10):
        print(i, "x", j, "=", i * j)
    print()

 

중첩 while문

중첩 while문은 while문 안에 또 다른 while문을 사용하는 경우입니다. 예를 들어, 별 모양을 출력하는 프로그램을 작성할 수 있습니다.

 

row = 1
while row <= 5:
    col = 1
    while col <= row:
        print("*", end=" ")
        col += 1
    print()
    row += 1

 

파이썬  반복문 예제 코드

 

구구단 만들기

구구단은 중첩 for문을 사용하여 쉽게 만들 수 있습니다. 다음은 2단부터 9단까지 구구단을 출력하는 코드입니다.

 

for i in range(2, 10):
    for j in range(1, 10):
        print(i, "x", j, "=", i * j)
    print()

 

피보나치 수열

피보나치 수열은 반복문을 사용하여 만들 수 있는 대표적인 수열입니다. 다음은 피보나치 수열의 처음 10개 항을 출력하는 코드입니다.

 

a, b = 0, 1
for i in range(10):
    print(a)
    a, b = b, a + b

 

리스트 값 누적

리스트의 각 값에 이전 값들의 합을 더하는 프로그램을 작성할 수 있습니다. 이 경우, 반복문을 사용하여 리스트를 순회하면서 누적값을 계산합니다.

 

numbers = [1, 2, 3, 4, 5]
result = []
sum = 0
for num in numbers:
    sum += num
    result.append(sum)
print(result)

 

가위바위보 게임

가위바위보 게임은 반복문과 조건문을 사용하여 만들 수 있습니다. 사용자의 입력과 컴퓨터의 무작위 선택을 비교하여 승부를 가립니다.

 

import random

while True:
    user = input("가위, 바위, 보 중 하나를 입력하세요: ")
    computer = random.choice(["가위", "바위", "보"])
    if user == computer:
        print("비겼습니다!")
    elif (user == "가위" and computer == "보") or (user == "바위" and computer == "가위") or (user == "보" and computer == "바위"):
        print("당신이 이겼습니다!")
    else:
        print("당신이 졌습니다!")
    if input("계속하려면 '계속', 종료하려면 '종료'를 입력하세요: ") == "종료":
		break

 

마무리

 

이번 글에서는 파이썬의 대표적인 반복문인 for문과 while문을 소개하고, 다양한 예제를 통해 활용해보았습니다. 반복문은 프로그래밍에서 꼭 필요한 기능이므로, 앞으로 파이썬을 이용한 다양한 프로젝트에서 활용하실 수 있을 것입니다

 

자주 묻는 질문

Q1. 파이썬에서 for문과 while문 중 어떤 것을 사용해야 하나요?

A1. 상황에 따라 사용할 반복문이 달라집니다. for문은 반복 횟수가 정해져 있는 경우, while문은 조건에 따라 반복 여부가 결정되는 경우에 사용하는 것이 좋습니다.

Q2. 무한 반복문을 사용할 때 주의할 점은 무엇인가요?

A2. 무한 반복문을 사용할 때는 반드시 종료 조건을 설정해야 합니다. 그렇지 않으면 프로그램이 무한히 실행되어 문제가 발생할 수 있습니다.

Q3. 중첩 반복문을 사용할 때 주의할 점은 무엇인가요?

A3. 중첩 반복문을 사용할 때는 코드의 복잡성이 증가할 수 있으므로, 가급적이면 중첩 반복문을 사용하지 않고 다른 방법으로 문제를 해결하려고 노력해야 합니다.

Q4. 리스트와 튜플, 딕셔너리를 사용한 반복문에서 어떤 차이점이 있나요?

A4. 리스트와 튜플, 딕셔너리 모두 반복문과 함께 사용할 수 있지만, 각 자료구조의 특성에 따라 사용 방식이 다릅니다. 리스트와 튜플은 원소를 순서대로 처리하며, 딕셔너리는 키와 값을 쌍으로 처리합니다.

Q5. 파이썬에서 continue와 break의 차이점은 무엇인가요?

A5. continue는 반복문의 나머지 부분을 건너뛰고 다음 반복으로 넘어가는 반면, break는 반복문을 강제로 종료합니다.

 

댓글