리스트와 반복문(for , while)

파이썬 리스트와 반복문 기초 정리

파이썬에서 자주 사용하는 리스트(List)반복문(for, while)을 배웠고 정리하였습니다.

1. 리스트(List)란?

리스트는 여러 개의 값을 하나의 변수에 저장할 수 있는 자료형입니다. 대괄호 []를 사용해서 만들며, 각 요소는 순서대로 저장됩니다.

list_a = [273, 12, "안녕", True, False]

리스트의 순서는 0부터 시작합니다.

list_a = [12, 14, "안녕", True]
list_a[2] = "변경"
print(list_a)

위 코드에서는 인덱스 2번 위치의 값을 "안녕"에서 "변경"으로 수정했습니다.

리스트 길이 구하기

리스트 안에 요소가 몇 개 들어 있는지 확인할 때는 len() 함수를 사용합니다.

print("len(list_a) =", len(list_a))

리스트 값 추가하기

리스트의 맨 뒤에 값을 추가할 때는 append(), 원하는 위치에 삽입할 때는 insert()를 사용합니다.

list_a.append(3)           # 맨 뒤에 추가
list_a.insert(1, "Hello")  # 1번 위치에 삽입

print(list_a)

2. for 반복문

for 반복문은 반복 횟수가 정해져 있거나, 리스트 같은 자료를 처음부터 끝까지 순서대로 확인할 때 사용합니다.

기본 예제

for i in range(5):
    print("출력", i)

위 코드는 0부터 4까지 총 5번 반복합니다.

리스트와 함께 사용하기

array = [273, 32, 103, 57, 52]

for element in array:
    print(element)

리스트 안에 있는 요소를 하나씩 꺼내서 출력할 수 있습니다.

실생활 예제 1: 장바구니 품목 확인

basket = ["사과", "바나나", "우유", "빵", "계란"]

print("--- 장바구니 품목 계산 시작 ---")
for item in basket:
    print(f"'{item}' 계산 완료!")
print("--- 장바구니 품목 계산 끝 ---")

실생활 예제 2: 정해진 횟수만큼 반복

for day in range(1, 8):
    print(f"오늘 {day}일차 운동 완료!")
print("일주일 운동 목표 달성!")

3. range 함수

range() 함수는 일정한 범위의 숫자를 만들어 반복문에서 자주 사용됩니다.

range(5)

a = range(5)
print(a)
print(list(a))

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

range(0, 10, 2)

b = range(0, 10, 2)
print(b)
print(list(b))

range(0, 10, 2)는 0부터 10 전까지 2씩 증가합니다.
결과는 [0, 2, 4, 6, 8] 입니다.

range(a, b, c)
a: 시작 숫자
b: 끝 숫자(포함되지 않음)
c: 증가 폭

4. while 반복문

while 반복문은 조건이 참(True)인 동안 계속 반복합니다. 반복 횟수가 정해져 있지 않을 때 자주 사용합니다.

기본 예제

i = 0
while i < 10:
    print("{}번째 반복입니다".format(i))
    i += 1

위 코드는 i가 10보다 작은 동안 반복합니다.

실생활 예제 1: ATM 인출

balance = 5000
withdrawal_amount = 1000

print("--- ATM 인출 시작 ---")
while balance >= withdrawal_amount:
    print(f"현재 잔고: {balance}원. {withdrawal_amount}원 인출합니다.")
    balance -= withdrawal_amount
    print(f"남은 잔고: {balance}원")
print("잔고가 부족하여 더 이상 인출할 수 없습니다. ATM 종료.")

실생활 예제 2: 목표 점수 달성까지 게임하기

import random

target_score = 100
current_score = 0
attempts = 0

print("--- 게임 시작 ---")
while current_score < target_score:
    attempts += 1
    points_earned = random.randint(10, 30)
    current_score += points_earned
    print(f"{attempts}번째 시도: {points_earned}점 획득! 현재 점수: {current_score}점")

print(f"축하합니다! 목표 점수 {target_score}점을 달성했습니다! 총 {attempts}번 시도했습니다.")

리스트에서 특정 값 모두 제거하기

list_test = [1, 2, 1, 2]
value = 2

while value in list_test:
    list_test.remove(value)

print(list_test)

위 코드는 리스트 안에 2가 있는 동안 계속 제거합니다.

주의: while문은 조건이 계속 참이면 무한 반복이 될 수 있습니다.
따라서 조건이 언젠가 거짓이 되도록 코드를 작성해야 합니다.

5. for문과 while문의 차이

for 반복문

  • 반복 횟수가 정해져 있을 때 사용
  • 리스트, 문자열 등 순회할 때 유용
  • 시작과 끝이 비교적 명확함

while 반복문

  • 특정 조건이 참인 동안 반복
  • 반복 횟수를 미리 알기 어려울 때 사용
  • 조건을 잘못 설정하면 무한 루프가 될 수 있음

for문 예시

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

for i in range(3):
    print(f"Hello {i}")

while문 예시

count = 0
while count < 3:
    print(f"Count: {count}")
    count += 1

6. break와 continue

continue

continue는 현재 반복만 건너뛰고 다음 반복으로 넘어갑니다.

print('--- continue 예시 ---')
for i in range(5):
    if i == 2:
        print(f'{i}는 건너뜁니다.')
        continue
    print(f'현재 숫자: {i}')
print('--- continue 예시 종료 ---')

break

break는 반복문 자체를 완전히 종료합니다.

print('--- break 예시 ---')
for i in range(5):
    if i == 3:
        print(f'{i}일 때 반복문을 종료합니다.')
        break
    print(f'현재 숫자: {i}')
print('--- break 예시 종료 ---')

while True와 break 예시

i = 0

while True:
    print("{}번째 반복문입니다.".format(i))
    i = i + 1
    input_text = input("> 종료하시겠습니까?(y/n) : ")
    if input_text in ["y", "Y"]:
        print("반복을 종료합니다.")
        break

위 예시는 무한 반복문을 만들고, 사용자가 y 또는 Y를 입력하면 종료하는 방식입니다.


7. 핵심 요약

  • 리스트는 여러 값을 저장하는 자료형이다.
  • len()으로 길이를 구할 수 있다.
  • append()는 맨 뒤에 추가, insert()는 원하는 위치에 삽입한다.
  • for문은 반복 횟수가 정해져 있을 때 유용하다.
  • while문은 조건이 참인 동안 계속 반복한다.
  • continue는 현재 반복만 건너뛴다.
  • break는 반복문 전체를 종료한다.

리스트와 반복문은 파이썬의 가장 기본이 되는 개념입니다. 직접 코드를 여러 번 실행해보면서 익히면 훨씬 더 쉽게 이해할 수 있습니다.

'개발일지 > python' 카테고리의 다른 글

함수 정리 (매개변수, return, 기본값까지)  (0) 2026.04.10
리스트 개념 문제 풀이  (0) 2026.04.10
리스트와 딕셔너리의 차이  (0) 2026.04.09
순차구조 연습 (1)  (0) 2026.04.07
선택구조 연습 (2)  (0) 2026.04.07