확인한 환경과 범위

Windows · Python 3.12.4. 본문의 첫 예제를 실행하여 표준 출력과 예상 결과가 일치함을 확인했습니다. 연습문제의 모든 입력을 검증한 것은 아닙니다.

이 글의 순서 4개 단락

여러 날 동안 읽은 페이지 수를 합하려면 매일의 값을 입력받아 이전 합계에 더해야 합니다. Python의 for와 range를 사용하면 입력받을 날의 수에 맞춰 이 작업을 반복할 수 있습니다. 이 글의 예제는 Python 3.12를 기준으로 합니다.

반복해서 페이지 수 입력받기

다음 코드는 먼저 읽은 날의 수를 입력받고, 그 횟수만큼 페이지 수를 입력받아 합계를 출력합니다. 날의 수와 페이지 수에는 정수를 입력한다고 가정합니다.

days = int(input("읽은 날의 수: "))

if days < 0:
    print("날의 수는 0 이상이어야 합니다.")
else:
    total = 0
    for day in range(1, days + 1):
        pages = int(input(f"{day}일째 읽은 페이지 수: "))
        total = total + pages
    print(f"총 읽은 페이지 수: {total}")

반복하면서 합계 구하기 — 첫 예제의 실제 실행 결과

예를 들어 입력을 다음 순서로 한 줄씩 넣습니다. 첫 번째 3은 날의 수이고, 나머지는 각 날에 읽은 페이지 수입니다.

3
12
8
15

입력한 값이 화면에 표시되는 대화형 환경에서는 예상 화면이 다음과 같습니다. 안내 문구 뒤의 숫자는 사용자가 입력한 값입니다.

읽은 날의 수: 3
1일째 읽은 페이지 수: 12
2일째 읽은 페이지 수: 8
3일째 읽은 페이지 수: 15
총 읽은 페이지 수: 35

for와 range, 누적 변수 이해하기

range(1, days + 1)은 1부터 시작해 days + 1 바로 앞까지의 정수를 차례로 만듭니다. days가 3이면 day에는 1, 2, 3이 순서대로 들어갑니다. for 아래에 들여쓴 두 줄은 각 값마다 한 번씩 실행됩니다.

total은 지금까지의 합계를 저장하는 누적 변수입니다. 반복하기 전에 total = 0으로 시작하고, total = total + pages에서 기존 합계에 새 입력값을 더한 결과를 다시 total에 저장합니다.

입력한 날pages더한 뒤 total
1일째1212
2일째820
3일째1535

마지막 print는 반복문보다 한 단계 덜 들여써서 모든 입력이 끝난 뒤 한 번 실행됩니다.

흔한 실수와 경계 조건

  • range(1, days)로 쓰면 끝값인 days가 빠집니다. 3일을 입력해도 1일째와 2일째만 처리하므로, 3일째까지 포함하려면 끝값에 days + 1을 사용합니다.
  • total = 0을 반복문 안에 두면 매번 합계가 0으로 돌아갑니다. 초기화는 반복문 앞에서 한 번만 해야 합니다.
  • 날의 수가 0이면 range(1, 1)에 값이 없어 페이지 수를 묻지 않고 총합 0을 출력합니다. 음수를 입력하면 안내 문구를 출력합니다.
  • 이 예제는 정수 입력을 전제로 합니다. 빈 문자열이나 정수로 바꿀 수 없는 값을 입력하면 int()에서 ValueError가 발생합니다. 또한 음수 페이지 수는 그대로 합계에 더해지므로, 실제 기록에 사용하려면 앞 강의에서 배운 조건문과 예외 처리를 이용해 입력을 검증해야 합니다.

연습: 짝수의 합 구하기

1부터 10까지의 정수 중 짝수만 더해 출력해 보세요. range의 끝값은 포함되지 않는다는 점과, 짝수는 2로 나눈 나머지가 0이라는 점을 이용합니다.

풀이

total = 0
for number in range(1, 11):
    if number % 2 == 0:
        total = total + number
print(total)

예상 출력은 30입니다. range(1, 11)이 1부터 10까지의 수를 차례로 제공하고, 조건에 맞는 2, 4, 6, 8, 10만 누적하기 때문입니다.

참고 자료: Python 3.12 공식 튜토리얼: for 문과 range().

CHECK THE SOURCE

참고한 공식 문서

기능 설명은 위 문서를 참고했으며, 예제의 입력·결과와 한계는 본문에 따로 기록했습니다.

한 줄씩 이해하고, 차곡차곡 기록합니다.이 글의 오류 제보하기 ↗