시험공부빅데이터분석
← 보드왕초보 코드 읽기 · 6/11

반복 — for와 range, 그리고 들여쓰기 ★★

for는 같은 일을 여러 번 되풀이하는 명령이에요. range(4)는 "0, 1, 2, 3"을 차례로 내주는 도구예요. 0부터 시작하고 끝 숫자(4)는 포함하지 않아요. 슬라이싱과 같은 규칙이에요.

total = 0 for i in range(4): total = total + i print(i, total) print(list(range(0, 10, 4)))
0 0 1 1 2 3 3 6 [0, 4, 8]
바퀴itotal 계산찍히는 결과
100 + 0 = 00 0
210 + 1 = 11 1
321 + 2 = 32 3
433 + 3 = 63 6

range(0, 10, 4)처럼 숫자 세 개를 쓰면 range(시작, 끝, 간격)이에요. 0에서 시작해 4씩 더하다가 10 이상이 되면 멈춰서 0, 4, 8이 나와요. 데이터 10개를 4개씩 묶어 꺼낼 때 이 모양을 쓰고, 그래서 묶음이 3개(4개, 4개, 2개)가 돼요.

반복할 범위는 들여쓰기로 정해요. 들여쓴 줄만 매 바퀴 반복되고, 들여쓰지 않은 줄은 반복이 다 끝난 뒤 한 번만 실행돼요.

total = 0 for i in range(3): total = total + i print("안", total) print("밖", total)
안 0 안 1 안 3 밖 3

리스트의 값을 하나씩 꺼내 쓰는 것도 같은 for예요. 값이 짝으로 묶여 있으면 for p, q in pairs:처럼 변수 두 개로 한꺼번에 받을 수 있어요. 나중에 나올 for batch_x, batch_y in loader:도 "꺼낸 묶음이 (입력, 정답) 짝이라서 둘로 나눠 받는다"는 같은 모양이에요.

pairs = [(1, 10), (2, 20)] for p, q in pairs: print(p, q) a1, b1 = 3, 4 print(a1, b1)
1 10 2 20 3 4
외우기 팁

range(n)은 0부터 n−1까지, 총 n번. "끝 숫자는 빠진다"만 기억하세요. 그리고 들여쓴 줄 = 반복 안이에요.

시험엔 이렇게 써요 — 이렇게 고르세요

for 문제는 위 표처럼 바퀴마다 한 줄씩 표를 그려요. 바퀴 수는 range의 개수예요. print가 들여쓴 줄 안에 있으면 바퀴 수만큼, 바깥에 있으면 한 번만 찍혀요.

잠깐 확인 — range(2, 8, 3)이 내주는 숫자는?

2, 5예요. 2에서 시작해 3씩 더하면 2, 5, 8인데 8은 끝 숫자(8)와 같아서 포함되지 않아요.

다음 카드 → 조건 — if, elif, else와 한 줄 조건식

자료: 2~4주차 · Week02/Week03 노트북(풀이포함) · 빅분02(2주차)·빅데이터03(3주차)·빅데이터04(4주차) 녹취