When researching for this question and reading the sourcecode in random.py
, I started wondering whether randrange
and randint
really behave as "advertised". I am very much inclined to believe so, but the way I read it, randrange
is essentially implemented as
start + int(random.random()*(stop-start))
(assuming integer values for start
and stop
), so randrange(1, 10)
should return a random number between 1 and 9.
randint(start, stop)
is calling randrange(start, stop+1)
, thereby returning a number between 1 and 10.
My question is now:
If random()
were ever to return 1.0
, then randint(1,10)
would return 11
, wouldn't it?
(assuming integer values for start and stop ), so randrange(1, 10) should return a random number between 1 and 9.
Clearly, we can see that the randint() method generates a random integer value within the limit 1-100.
Python Random randint() Method The randint() method returns an integer number selected element from the specified range.
How do you generate a random number between 1 to 10 in Python? You can use randint(0,50) to generate a random number between 0 and 50. To generate random integers between 0 and 9, you can use the function randrange(min,max) . Change the parameters of randint() to generate a number between 1 and 10.
From random.py
and the docs:
"""Get the next random number in the range [0.0, 1.0)."""
The )
indicates that the interval is exclusive 1.0. That is, it will never return 1.0.
This is a general convention in mathematics, [
and ]
is inclusive, while (
and )
is exclusive, and the two types of parenthesis can be mixed as (a, b]
or [a, b)
. Have a look at wikipedia: Interval (mathematics) for a formal explanation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With