Документы на randrange говорят:
random.randrange([start], stop[, step])
Возвращает случайно выбранный элемент из
blockquote>range(start, stop, step)
. Это эквивалентноchoice(range(start, stop, step))
, но на самом деле не создает объект диапазона.И диапазон (start, stop) возвращает
[start, start+step, ..., stop-1]
, а не[start, start+step, ..., stop]
. Что касается того, почему ... правила подсчета на основе нуля иrange(n)
должны возвращать n элементов, я полагаю.Хотя randint документируется как:
random.randint(a, b)
Возвращает случайное целое число N такое это
blockquote>a <= N <= b
. Псевдоним дляrandrange(a, b+1)
Итак, randint - это когда вы имеете максимальное и минимальное значение для нужного вам случайного числа.