본문 바로가기
파이썬/파이썬 기초 문법

파이썬 제어문 - 반복문

by 쵠몽 2024. 9. 26.

1. 반복문

파이썬에서 반복문은 어떠한 기능을 반복적으로 실행할 때 사용하는 제어 구조이다. 주로과 while 문과  for 문이 사용된다.

 

 

2. while문

while문은 특정 조건이 참(True)인 동안 반복적으로 코드 블록을 실행하는 제어 구조이다. 참과 거짓을 기준으로 조건이 거짓이 되기 전까지 무한 반복을 실행한다.

 

while 조건:
    # 조건이 참인 동안 실행될 코드

 

while True: 
    print('Hello Python')

 

i = 1
while i <= 5:
    print('Hello Python')
    i +=1

 

# 1부터 10까지의 합
i = 1
sum = 0

while i <= 10:
    sum += i
    i += 1
print(f'1부터 10까지의 합: {sum}')
print(f'현재 i의 값: {i}')

 

3. for문

for문은 시퀀스(리스트, 튜플, 문자열 등)의 각 항목에 대해 반복 작업을 수행하는 반복문이다. 반복되는 부분이나 범위를 코드 작성자가 구체적으로 지정하여 사용한다.

for 요소 in 시퀀스:
    # 요소에 대한 작업 수행

 

 

3-1. range() 함수

파이썬에서 range() 함수는 순차적인 정수의 시퀀스를 생성하는 데 사용한다. 주로 for문과 함께 사용되며 일정 횟수를 반복 수행하거나 특정 범위의 정수를 이용한 작업을 할 때 유용하게 사용된다.

range([start], stop, [step])

 

  • start: 시작하는 값을 지정한다. (생략 가능, 생략 시 기본값: 0)
  • stop: 끝나는 값을 지정한다. 생성된 시퀀스는 stop 값 직전까지의 정수 값을 포함한다.
  • step: 값을 증가시키는 간격을 지정한다. (생략 가능, 생략 시 기본값:1)

 

num = range(10) # range(0, 10, 1)
print(num)
for i in num:
    print(i, end= ' ')

 

for i in range(10):
    print(i, end= ' ')
    
    for i in range(5, 10):
    print(i, end= ' ')
    
    for i in range(0, 10, 2):
    print(i, end= ' ')

 

 

3-2. enumerate() 함수

 

시퀀스의 순서를 나타내면서 해당 값의 인덱스를 함께 사용할 때 유용하다. 반환값은 (인덱스, 값)의 튜플 형태이다.

enumerate(시퀀스, [start=0])

 

  • 시퀀스: 반복 가능한 객체(리스트, 튜플, 문자열 등)를 지정한다.
  • start: 인덱스의 시작 값을 지정한다. (생략 가능, 생략 시 기본값: 0)

 

for e in enumerate('hello', 0):
    print(e)

 

list1 = [10, 20, 30, 40]

for i in enumerate(list1):
    print(e)

 

list1 = [10, 20, 30, 40]

# (0, 10)
# i, v = (0, 10)

for i, v in enumerate(list1):
    print(f'인덱스: {i}, 값: {v}')

 

 

3-3. zip() 함수

 

여러 개의 반복 가능한 시퀀스 객체를 병렬적으로 묶어주는 내장 함수이다.

zip(시퀀스1, 시퀀스2, ...)

 

li1 = [10, 20, 30]
li2 = ['apple', 'banana', 'orange']

for i in range(0, 3):
    print(li1[i], li2[i])
li1 = [10, 20, 30]
li2 = ['apple', 'banana', 'orange']

for i in range(len(li1)):
    print(li1[i], li2[i])

 

위의 코드와 같이 병렬 시퀀스 객체를 range() 함수로 나타낼 수 있다. 하지만 코드가 복잡해지면 의미를 파악하기 힘들 수 있고 데이터의 개수가 달라지면 에러가 발생하기 때문에 이러한 방법은 잘 사용하지 않는다. 이런 문제점들은 zip() 함수를 이용하여 보완 가능하다.

 

li1 = [10, 20, 30]
li2 = ['apple', 'banana', 'orange']

for l1, l2 in zip(li1, li2):
    print(l1, l2)
li1 = [10, 20, 30]
li2 = ['apple', 'banana', 'orange']

for li in zip(li1, li2):
    print(li)
li1 = [10, 20, 30, 40, 50] # 데이터의 개수가 다를 땐 적은 데이터에 맞춰서 반복됨
li2 = ['apple', 'banana', 'orange']

for l1, l2 in zip(li1, li2):
    print(l1, l2)

 

 

4. 중첩 반복문

for 외부_변수 in 외부_시퀀스:
    for 내부_변수 in 내부_시퀀스:
        # 내부 반복문 코드
    # 외부 반복문 코드

 

for i in range(1, 3):
    print(f'😎             i:{i}')
    for j in range(1, 4):
        print(f'😍 j:{j}')

 

'파이썬 > 파이썬 기초 문법' 카테고리의 다른 글

파이썬의 컬렉션과 반복문  (1) 2024.09.26
Input 함수  (0) 2024.09.26
파이썬 제어문 - 조건문  (2) 2024.09.26
파이썬의 연산자  (0) 2024.09.26
파이썬 컬렉션 타입 (4) 딕셔너리  (0) 2024.09.26