더북(TheBook)

이 코드는 코드 안에 리스트 길이 5를 하드코딩했기 때문에 최선의 코드로 볼 수 없다. 다음 코드에서 루프를 작성하는 더 나은 방법을 찾을 수 있다.

my_lst = [100, 102, 50, 25, 72]
for i in range(len(my_lst)):
    my_lst[i] *= 2

이 루프가 실행되고 나면 my_lst는 [200, 204, 100, 50, 144]가 된다.

range 함수는 표 1-3과 같이 인수의 개수를 1개, 2개 혹은 3개로 지정함에 따라 열거형 인덱스를 만들어 준다.

▼ 표 1-3 range 함수의 반환값

문법

반환값

range(end)

0부터 시작하여 end보다 작은 숫자까지 증가하는 열거형 데이터를 생성한다.

range(beg, end)

beg부터 시작하여 end보다 작은 숫자까지 증가하는 열거형 데이터를 생성한다.

range(beg, end, step)

beg부터 시작하여 end보다 작은 숫자까지 증가하는 열거형 데이터를 생성한다. 단 각 항목은 step만큼 증가한다. step이 음수면 결괏값은 역순으로 정렬된다.

range 함수의 또 다른 사용처는 열거형 정수를 사용해서 순회하는 루프를 생성하는 것이다. 가령 다음 루프는 팩토리얼(factorial) 숫자를 계산한다.

n = int(input('양의 정수를 입력하라 : '))
prod = 1
for i in range(1, n + 1):
    prod *= i
print(prod)

이 루프는 range(1, n + 1)1부터 n까지 나열된 정수를 제공하면서 의도대로 동작한다. 최종적으로 이 루프는 다음 연산을 처리하게 된다.

1 * 2 * 3 * ... n
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.