Python: Generate random number between x and y which is a multiple of 5


Question

I've read the manual for pseudo-randomness in Python, and to my knowledge, you can only generate numbers up to a given maximum value, i.e. 0-1, 0-30, 0-1000, etc. I want to:

  • a) Generate a number between two ints, i.e. 5-55, and
  • b) Only include multiples of 5 (or those ending in 5 or 0, if that's easier)

I've looked around, and I can't find anywhere that explains this.

1
35
1/6/2012 12:38:27 PM

Accepted Answer

Create an integer random between e.g. 1-11 and multiply it by 5. Simple math.

import random
for x in range(20):
  print random.randint(1,11)*5,
print

produces e.g.

5 40 50 55 5 15 40 45 15 20 25 40 15 50 25 40 20 15 50 10
99
11/27/2011 4:55:00 PM

>>> import random
>>> random.randrange(5,60,5)

should work in any Python >= 2.


Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon