tags:

views:

55

answers:

1

the only difference that i know between randrange and randint is that andrange([start], stop[, step]) you can use the step and random.randrange(0,1) will not considerate the last item and randint(0,1) return a choice inclusive of the last item

so, i can't find a reason for explain why randrange(0,1) doesn't return 0 or 1, why exist randint(0, 1) and randrange(0, 2) instead of a randrange(0, 1) who returns 0 or 1?

+2  A: 

The docs on randrange say:

random.randrange([start], stop[, step])

Return a randomly selected element from range(start, stop, step). This is equivalent to choice(range(start, stop, step)), but doesn’t actually build a range object.

And range(start, stop) returns [start, start+step, ..., stop-1], not [start, start+step, ..., stop]. As for why... zero-based counting rules and range(n) should return n elements, I suppose. Most useful for getting a random index, I suppose.

While randint is documented as:

random.randint(a, b)

Return a random integer N such that a <= N <= b. Alias for randrange(a, b+1)

So randint is for when you have the maximum and minimum value for the random number you want.

delnan