2016-10-16 37 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)將是一個更好的主意,並且不必擔心indexe erros,儘管獲取當前實現的最後一個元素的可能性略高,可能是也可能不是故意的。

相關問題