2016-10-16 6 views
0

랜덤 수를 얻기 위해 randint 메서드의 retuen 값에서 1을 뺀 이유를 이해하지 못했습니다. 어떤 것을 설명해 주시겠습니까?randint 반환 값에서 1을 뺀 이유는 무엇입니까?

import random 

def random_item(iterable): 
    randomIndex= random.randint(0, len(iterable))-1 
    item=iterable[randomIndex] 
    return item 
+0

인쇄상의 오류는 어떻게됩니까? –

답변

1

randint 상한 포함

복귀 임의의 정수 N되도록 < = N = B를 <.

당신이 iterable[len(iterable)] 사용하는 경우가 IndexError이 때문에 random.randint(0, len(iterable)) - 1이 보장 얻을 것이다 당신은 발생하지 않는다 반복자의 길이에 임의 INT 동일한 얻을 경우.

참고로, random.choice(iterable)을 사용하면 더 나은 아이디어가 될 수 있으며 의도적 일 수도 있고 그렇지 않을 수도있는 현재 구현으로 마지막 요소를 가져올 확률이 약간 더 높지만 인덱스 오류에 대한 걱정을 제거 할 수 있습니다.

관련 문제