[Python 입문 강좌 - 14] 파이썬 반복문 정리 및 사용법

 

더보기

 


1. 반복문이란? 

 

파이썬에서의 반복문은 특정 코드 블록을 반복하는 것을 말합니다. 이 글에서는 파이썬의 대표적인 반복문인 for문과 while문에 대해 알아보도록 하겠습니다.

 


1.1 반복문의 종류

 

파이썬에서는 다음과 같은 두 가지 반복문이 존재합니다. 각각의 반복문에 대해 자세히 알아보도록 하겠습니다.

  • for 반복문
  • while 반복문

 


2. for문

2.1 for문의 구조

 

for 반복문은 특정한 범위 내에서 일정한 패턴에 따라 반복적으로 코드를 실행할 수 있는 구조입니다. 기본적인 구조는 아래와 같은 구조를 가지고 있습니다. 변수는 반복문을 수행할 때마다 갱신되는 변수입니다. 범위는 반복문을 수행할 횟수를 결정하는 범위입니다. 이 범위는 리스트, 문자열, 튜플 등의 시퀀스 객체일 수도 있고, range() 함수를 사용하여 범위를 지정할 수도 있습니다.

 

>>> for 변수 in 범위:
>>>     수행할 문장1
>>>     수행할 문장2

 

아래 코드는 range()함수, 리스트, 문자열을 이용한 반복문 예시 코드입니다. range() 함수에 대한 자세한 내용은 링크를 통해 확인 할 수 있습니다. 

 

#range를 이용한 반복문
>>> for i in range(1, 11):
>>>     print(i)
    
#리스트를 이용한 반복문    
>>> fruits = ["사과", "바나나", "포도"]
>>> for fruit in fruits:
>>>     print(fruit)
    
#문자열을 이용한 반복문    
>>> text = "파이썬"
>>> for character in text:
>>>     print(character)

 


2.2 함수를 이용한 반복문

 

for 반복문에서 자주 사용되는 함수들이 range()와 enumerate()입니다. range 함수는 지정한 범위의 숫자 리스트를 생성해주며, enumerate 함수는 리스트의 인덱스와 값을 동시에 순회할 수 있도록 해줍니다. 아래 첫 번째 코드는 range()함수가 0부터 4까지 총 5개의 숫자를 만들어 반복하는 코드입니다. 아래 두 번째 코드는 enumerate()함수를 이용하여 리스트의 인덱스와 요소를 함께 출력하는 코드입니다. enumerate함수에 대한 자세한 내용은 링크를 통해 확인 할 수 있습니다. 

 

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

 

>>> names = ["철수", "영희", "민수", "수지"]

>>> for idx, name in enumerate(names):
>>>     print(idx, name)

 


3. for문 연습문제

3.1 for문 문제 1번

 

1부터 100까지의 숫자 중 3의 배수만 출력하세요.

 

더보기

##문제확인

>>> for i in range(1,101):
>>>     if i % 3 == 0:
>>>         print(i)

 


3.2 for문 문제 2번

 

1부터 100까지의 숫자 중 5의 배수의 합을 구하세요.

 

더보기

##문제확인

>>> sum = 0
>>> for i in range(1,101):
>>>     if i % 5 == 0:
>>>         sum += i
>>> print(sum)

 


3.3 for문 문제 3번

 

1부터 100까지의 숫자 중 3과 5의 공배수의 합을 구하세요.

 

더보기

##문제확인

>>> sum = 0
>>> for i in range(1,101):
>>>     if i % 3 == 0 and i % 5 == 0:
>>>         sum += i
>>> print(sum)

 


3.4 for문 문제 4번

 

1부터 입력한 숫자까지의 합을 구하세요.

 

더보기

##문제확인

>>> n = int(input("숫자를 입력하세요: "))
>>> sum = 0
>>> for i in range(1,n+1):
>>>     sum += i
>>> print(sum)

 


3.5 for문 문제 5번

 

입력한 숫자의 약수를 출력하세요.

 

더보기

##문제확인

>>> n = int(input("숫자를 입력하세요: "))
>>> for i in range(1, n+1):
>>>     if n % i == 0:
>>>         print(i)

 


3.6 for문 문제 6번

 

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 리스트에서 최대값, 최소값, 평균을 구하세요.

 

더보기

##문제확인

>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> max_num = numbers[0]
>>> min_num = numbers[0]
>>> sum = 0

>>> for num in numbers:
>>>     if num > max_num:
>>>         max_num = num
>>>     if num < min_num:
>>>         min_num = num
>>>     sum += num

>>> average = sum / len(numbers)

>>> print("최대값:", max_num)
>>> print("최소값:", min_num)
>>> print("평균:", average)

 


3.7 for문 문제 7번

 

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 리스트에서 중복된 숫자를 제거하세요.

 

더보기

##문제확인

>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> unique_numbers = []
>>> for num in numbers:
>>>     if num not in unique_numbers:
>>>         unique_numbers.append(num)
>>> print(unique_numbers)

 


3.8 for문 문제 8번

 

주어진 "hello world"에서 각 문자의 개수를 세세요.

 

더보기

##문제확인

>>> string = "hello world"

>>> char_count = {}
>>> for char in string:
>>>     if char in char_count:
>>>         char_count[char] += 1
>>>     else:
>>>         char_count[char] = 1
>>> print(char_count)

 



4. While 반복문

 

while 반복문은 조건식이 참인 동안 특정 코드 블록을 반복하는 반복문입니다. 반복문의 구조는 아래와 같습니다. 조건식이 참인 경우 코드 블록의 코드가 반복되고 조건이 거짓이되면 반복문이 종료 됩니다.

 

>>> while 조건식:
>>>     코드 블록

 


5.  while문 연습 문제

5.1 while문 문제 1번

 

1부터 n까지의 수 중 짝수만 출력하세요.

 

더보기

##문제확인

>>> n = 20
>>> count = 1

>>> while count <= n:
>>>     if count % 2 == 0:
>>>         print(count)
>>>     count += 1

 


5.2 while문 문제 2번

 

구구단 중 사용자가 입력한 단을 출력하세요. (사용자 입력 받기는 링크를 통해 자세히 확인할 수 있습니다.)

 

더보기

##문제확인

>>> dan = int(input("출력할 구구단의 단을 입력하세요: "))
>>> count = 1

>>> while count <= 9:
>>>     print(f"{dan} * {count} = {dan * count}")
>>>     count += 1

 


5.3 while문 문제 3번

 

사용자가 'q'를 입력할 때까지 이름을 입력받으세요.

 

더보기

##문제확인

>>> while True:
>>>     name = input("이름을 입력하세요 (종료하려면 'q'를 입력하세요): ")
>>>     if name == 'q':
>>>         break
>>>     print(f"안녕하세요, {name}님!")

 

 


5.4 while문 문제 4번

 

1부터 10까지의 제곱을 출력하세요.

 

더보기

##문제확인

>>> count = 1

>>> while count <= 10:
>>>     print(f"{count}의 제곱: {count**2}")
>>>     count += 1

 


5.5 while문 문제 5번

 

별(*)로 피라미드 그리세요.

 

더보기

##문제확인

>>> n = 5
>>> count = 1

>>> while count <= n:
>>>     print(" " * (n - count) + "*" * (2 * count - 1))
>>>     count += 1

 


6. 중첩 반복문

 

중첩 반복문은 하나의 반복문 안에 또 다른 반복문이 포함된 경우를 말합니다. 주로 이차원 배열이나 행렬과 같은 다차원 데이터를 처리할 때 사용됩니다. 중첩 반복문은 for문과 while문 모두에서 사용할 수 있습니다.

 


6.1 for문 중첩

 

for문을 중첩하여 사용하는 방법은 아래와 같습니다. 문법은 동일합니다. 변수는 보통 i, j, k, l ... 순으로 지정합니다. 다른 변수명으로 지정해도 문제는 없습니다.

 

>>> for 변수1 in 반복 가능한 객체1:
>>>     for 변수2 in 반복 가능한 객체2:
>>>         실행할 코드

 

 

아래 코드는 for문 중첩 코드를 이용해 구구단을 출력하는 코드입니다. 구구단의 각 단(i)에 대해 1부터 9까지(j)의 곱셉 결과를 출력합니다.

 

>>> for i in range(2, 10):
>>>     for j in range(1, 10):
>>>         print(f"{i} * {j} = {i * j}")
>>>     print()

 


6.2 while문 중첩

 

while문을 중첩하여 사용하는 방법은 아래와 같습니다. 문법은 동일합니다.

 

>>> while 조건1:
>>>     while 조건2:
>>>         실행할 코드
>>>     조건1에 관련된 변수 변경

 

아래 코드는 while문 중첩 코드를 이용해 구구단을 출력하는 코드입니다. 구구단의 각 단(i)에 대해 1부터 9까지(j)의 곱셉 결과를 출력합니다.

 

>>> i = 2

>>> while i < 10:
>>>     j = 1
>>>     while j < 10:
>>>         print(f"{i} * {j} = {i * j}")
>>>         j += 1
>>>     print()
>>>     i += 1

 


6.3 for문과 while문 중첩 사용

 

for문과 while문을 함께 중첩하여 사용할 수도 있습니다. 구조는 아래와 같습니다. 

 

>>> for 변수 in 반복 가능한 객체:
>>>     while 조건:
>>>         실행할 코드
>>>         조건에 관련된 변수 변경


>>> while 조건:
>>>     for 변수 in 반복 가능한 객체:
>>>         실행할 코드
>>>     조건에 관련된 변수 변경

 


7. 제어문

 

반복문에는 break, continue, pass 세 가지 제어문이 있습니다. 이 제어문들은 반복문의 실행 흐름을 제어하는데 사용됩니다.

 


7.1 break

 

break 제어문은 현재 실행 중인 반복문을 즉시 종료하고 다음 코드로 넘어갑니다. 주로 무한 루프에서 특정 조건을 만족할 때 종료하는 데 사용됩니다. 아래 코드에서 n이 10보다 커지면 break문이 실행되어 while문을 종료합니다.

 

>>> n = 1

>>> while True:
>>>     if n > 10:
>>>         break
>>>     print(n)
>>>     n += 1

 


7.2 continue 제어문


continue 제어문은 현재 실행 중인 반복문의 나머지 부분을 건너뛰고 다음 반복으로 진행합니다. 특정 조건을 만족하는 경우에만 실행하고 싶지 않은 코드가 있을 때 유용합니다. 아래 코드에서 i가 짝수일 때 continue문이 실행되어 print(i)를 건너뛰고 다음 반복으로 진행합니다.

 

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

 


7.3 pass 제어문



pass 제어문은 아무런 동작을 하지 않습니다. 코드의 구조를 잡아주거나, 아직 구현되지 않은 부분을 표시하는 데 사용됩니다. 코드가 실행되긴 하지만, 특별한 작업을 하지 않고 그냥 지나가게 됩니다. 아래 코드에서 i가 짝수일 때 pass문이 실행되지만, 아무런 동작을 하지 않고 다음 반복으로 진행합니다.

 

>>> for i in range(1, 11):
>>>     if i % 2 == 0:
>>>         pass
>>>     else:
>>>         print(i)