在Python中,有办法让变量每次都是不同的随机数吗?

1 投票
8 回答
15603 浏览
提问于 2025-04-16 09:29

基本上,我有这样的代码:

import random
variable1 = random.randint(13, 19)

这段代码的作用是给变量variable1赋一个在13到19之间的随机数。很好。

但是,我想要的是每次调用这个变量时,给它赋一个不同的随机数,依然是在13到19之间。有没有办法做到这一点呢?

如果我说得不够清楚,这里有个例子:

import random
variable1 = random.randint(13, 19)
print(variable1)
print(variable1)
print(variable1)

我想要的输出大概是这样的:

./script.py
15
19
13

所以,有没有办法在Python中做到这一点呢?(更具体一点是Python3,不过答案可能和Python2的类似)

8 个回答

3

在这个具体的例子中,有一种相当傻的方法来处理它。print会自动把它的参数转换成字符串。你可以重载这个功能:

class randomizer():
    def __str__(self):
        return str(random.randint(13, 19))

variable1 = randomizer()
print(variable1)
print(variable1)
print(variable1)
4

这可能是个傻问题,但为什么不直接用函数,而不是用变量呢?

或者说得更贴近你用变量的方式,为什么不在一个对象上使用方法呢?这样这个对象可以作为变量传递,然后这个方法就能返回一个新的随机数。

3

这跟你想要的差不多。

>>> import random
>>> variable1 = lambda: random.randint(13, 19)
>>> print(variable1())
18
>>> print(variable1())
15
>>> print(variable1())
17
>>> 

撰写回答