툴곰코드 노트파이썬 › 파이썬 for 반복문

파이썬 for 반복문

파이썬의 for는 "몇 번 돌아라"가 아니라 "이 안에 든 것을 하나씩 꺼내라"입니다. 이 차이를 알면 나머지가 쉬워집니다.

⬇ 예제 파일 받기 (.py)
파이썬 · 회원가입 없음
내려받아 python 파일이름.py 로 실행합니다.
광고 영역

무엇을 하는 것인가

같은 코드를 백 번 복사해 붙이는 사람은 없습니다. 반복문은 "이 일을 여러 번 해라"라고 한 번만 적는 방법입니다.

다른 언어의 for는 보통 i = 0; i < 10; i++처럼 숫자를 세는 모양입니다. 파이썬의 for는 다릅니다. for 항목 in 목록:목록에서 하나씩 꺼내 항목에 넣고 아래를 실행하기를 끝까지 반복합니다.

그래서 파이썬에서는 리스트든 문자열이든 파일이든, "여러 개가 들어 있는 것"이면 무엇이든 그대로 for에 넣을 수 있습니다. 길이를 세서 인덱스로 접근할 일이 거의 없습니다.

숫자를 세고 싶을 때만 range()를 씁니다. range(5)는 0,1,2,3,4를 만듭니다. 5는 포함되지 않습니다. 시작이 0이고 끝이 빠진다는 두 가지가 초보자가 가장 자주 틀리는 곳입니다.

예제 코드

아래 코드가 위 버튼으로 받는 파일과 같은 내용입니다. 통째로 복사해 실행해 보고, 값을 바꿔 가며 결과가 어떻게 달라지는지 보는 편이 읽기만 하는 것보다 훨씬 빨리 익습니다.

# for 반복문 — 같은 일을 여러 번 시키기
# 파이썬의 for 는 "몇 번 돌아라" 가 아니라 "안에 든 것을 하나씩 꺼내라" 입니다.

명단 = ["김서연", "이준호", "박민지"]

for 이름 in 명단:          # 명단에서 하나씩 꺼내 이름에 넣습니다
    print("안녕하세요,", 이름, "님")

# 몇 번째인지도 필요하면 enumerate. 1 부터 세려면 두 번째 인자에 1.
for 번호, 이름 in enumerate(명단, 1):
    print(번호, "번:", 이름)

# 숫자를 셀 때만 range 를 씁니다.
# range(5) 는 0,1,2,3,4 — 5 는 들어가지 않습니다. 여기서 많이 틀립니다.
for i in range(5):
    print("i =", i)

for 단 in range(2, 4):     # 2, 3 (4는 빠짐)
    for 곱 in range(1, 10):
        print(단, "x", 곱, "=", 단 * 곱)
    print("---")

# break 는 통째로 그만, continue 는 이번 것만 건너뛰기
for 수 in range(1, 11):
    if 수 % 2 == 0:
        continue           # 짝수는 건너뛴다
    if 수 > 7:
        break              # 7 을 넘으면 아예 그만둔다
    print("홀수:", 수)     # 1, 3, 5, 7

# 문자열도 "여러 개가 든 것" 이라 그대로 돌릴 수 있습니다.
for 글자 in "파이썬":
    print(글자)

기억할 것

광고 영역

자주 묻는 것

range(5) 인데 왜 5 가 안 나오나요

파이썬은 "0부터 시작해서 끝은 빼고"가 기본입니다. range(5)는 다섯 개(0,1,2,3,4)를 만듭니다. 개수는 맞고 마지막 값만 하나 작다고 생각하면 편합니다. 1부터 5까지가 필요하면 range(1, 6)을 쓰세요.

반복하면서 몇 번째인지도 알고 싶습니다

for i, 이름 in enumerate(명단): 처럼 쓰면 i에 0부터 번호가, 이름에 값이 들어옵니다. 1부터 세려면 enumerate(명단, 1)입니다.

while 문과 언제 나눠 쓰나요

몇 번 할지 정해져 있으면 for, 조건이 끝날 때까지면 while입니다. 명단을 훑는 건 for, 사용자가 "그만"이라고 칠 때까지 계속 물어보는 건 while이 맞습니다.

반복 중에 리스트를 지워도 되나요

피하세요. 훑는 도중에 원소를 지우면 건너뛰는 것이 생깁니다. 남길 것만 골라 새 리스트를 만드는 편이 안전합니다.

이어서 볼 글