在Python中,有办法让变量每次都是不同的随机数吗?
基本上,我有这样的代码:
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
>>>