Python: Generate random number between x and y whi

2019-01-31 16:06发布

This question already has an answer here:

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.

标签: python random
4条回答
手持菜刀,她持情操
2楼-- · 2019-01-31 16:31
>>> import random
>>> random.randrange(5,60,5)

should work in any Python >= 2.

查看更多
干净又极端
3楼-- · 2019-01-31 16:38

The simplest way is to generate a random nuber between 0-1 then strech it by multiplying, and shifting it.
So yo would multiply by (x-y) so the result is in the range of 0 to x-y,
Then add x and you get the random number between x and y.

To get a five multiplier use rounding. If this is unclear let me know and I'll add code snippets.

查看更多
我想做一个坏孩纸
4楼-- · 2019-01-31 16:40

If you don't want to do it all by yourself, you can use the random.randrange function.

For example import random; print random.randrange(10, 25, 5) prints a number that is between 10 and 25 (10 included, 25 excluded) and is a multiple of 5. So it would print 10, 15, or 20.

查看更多
做自己的国王
5楼-- · 2019-01-31 16:44

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
查看更多
登录 后发表回答