在python中,是否每次都有一个变量是不同的随机数?
基本上我有:在python中,是否每次都有一个变量是不同的随机数?,python,variables,random,python-3.x,Python,Variables,Random,Python 3.x,基本上我有: import random variable1 = random.randint(13, 19) 基本上就是给variable1分配一个13到19之间的随机数。太好了 但是,我想让它做的是,每次调用该变量时,为其分配一个13到19之间的不同随机数。还有什么我可以做的吗 如果我不够清楚,这里有一个例子: import random variable1 = random.randint(13, 19) print(variable1) print(variable1) print(v
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的答案类似)也许是个愚蠢的问题,但为什么不使用函数而不是变量呢
或者更符合您的变量范例,为什么不在对象上使用方法呢。然后可以将对象作为变量传递,该方法返回新的随机数。也许是个愚蠢的问题,但为什么不使用函数而不是变量呢 或者更符合您的变量范例,为什么不在对象上使用方法呢。然后可以将对象作为变量传递,该方法返回新的随机数。使用:
alist = range(13,20)
random.shuffle(alist)
现在,您可以按随机顺序循环执行此操作使用:
alist = range(13,20)
random.shuffle(alist)
现在你可以按随机顺序循环这个问题了你提到了“called”这个词,这样我想你已经回答了你自己的问题。这正是函数或方法的工作
变量只是对对象的引用。您可以在变量中存储一个对象,该对象重写to string方法以生成一个随机数,但这仍然是一个方法
imho说,最终,你的要求会混淆引擎盖下到底发生了什么,结果会产生可维护性较差的代码
当执行
variable1=random.randint(13,19)
时,variable1
包含不可变对象“数字13”(或其他一些数字)。根据定义,它不能改变而不成为另一个对象。相反,您可以用前面提到的可变对象填充变量,从而允许它修改其“随机数”。或者你可以直接调用一个函数
这只是一个简单的问题。你提到了“被叫”这个词,我想你已经回答了你自己的问题。这正是函数或方法的工作
变量只是对对象的引用。您可以在变量中存储一个对象,该对象重写to string方法以生成一个随机数,但这仍然是一个方法
imho说,最终,你的要求会混淆引擎盖下到底发生了什么,结果会产生可维护性较差的代码
当执行
variable1=random.randint(13,19)
时,variable1
包含不可变对象“数字13”(或其他一些数字)。根据定义,它不能改变而不成为另一个对象。相反,您可以用前面提到的可变对象填充变量,从而允许它修改其“随机数”。或者你可以直接调用一个函数
这只是一个简单的问题。为什么不跳过这个变量呢?您也可以内联使用函数:
print(random.randint(13,19)+1)
试试这个,看看它是否适合你的需要;)
我看不到任何其他的可能性,所以祝你好运 为什么不跳过这个变量呢?您也可以内联使用函数:
print(random.randint(13,19)+1)
试试这个,看看它是否适合你的需要;)
我看不到任何其他的可能性,所以祝你好运 也许我没有正确理解这个问题,但你就不能:
print(random.randint(13, 19))
也许我没有正确理解这个问题,但你就不能这样做:
print(random.randint(13, 19))
使用
random.sample
执行任务怎么样?它从总体序列中选择k个唯一的随机元素
import random
v1,v2,v3 = random.sample(range(13,20),3)
print v1,v2,v3
当然,我已经给出了3个变量,您可以将其用于n个变量。使用
random.sample
执行任务如何?它从总体序列中选择k个唯一的随机元素
import random
v1,v2,v3 = random.sample(range(13,20),3)
print v1,v2,v3
当然,我已经给出了3个变量,你可以用它来表示n个变量。在那个具体的例子中,有一种相当愚蠢的方法
print
隐式地将其参数转换为字符串。您可以重载该功能:
class randomizer():
def __str__(self):
return str(random.randint(13, 19))
variable1 = randomizer()
print(variable1)
print(variable1)
print(variable1)
在那个具体的例子中,有一种相当愚蠢的方法
print
隐式地将其参数转换为字符串。您可以重载该功能:
class randomizer():
def __str__(self):
return str(random.randint(13, 19))
variable1 = randomizer()
print(variable1)
print(variable1)
print(variable1)
这接近你想要的
>>> import random
>>> variable1 = lambda: random.randint(13, 19)
>>> print(variable1())
18
>>> print(variable1())
15
>>> print(variable1())
17
>>>
这接近你想要的
>>> import random
>>> variable1 = lambda: random.randint(13, 19)
>>> print(variable1())
18
>>> print(variable1())
15
>>> print(variable1())
17
>>>
为什么投反对票??我认为OP只是想从一个集合中生成不重复的元素。为什么要投反对票??我认为OP只是想从一个集合中生成非重复元素。他不想重复数字,看看问题,伙计们。他不想重复数字。在
\uuuu int\uuuu
中添加类似的内容,然后设置为:D+1,它比使用函数更匹配运算。假设OP作者知道函数是什么,并且出于某种原因不想使用它。将类似的内容添加到\uuuu int\uuu
中,然后设置为:D+1,它比使用函数更符合OP。假设作者知道函数是什么并且出于某种原因不想使用它。你知道这叫做。。。一个函数,一个什么?我还没听说过这个新发现。你知道这叫做。。。一个函数,一个什么?我还没有听说这个新发现。