0

我想创建一个名为 Random 的变量,每次调用它时它都会不断变化。

我想要这段代码:

Random = randint(0, 10)
print Random
print Random
print Random

不要给我类似的东西:

6
6
6

而是类似的东西:

3
6
1

无需在每次使用之前重新分配 Random 。我还在几个不同的函数中使用了 Random 。那么如何允许它在代码中的任何地方使用,而不必每次都将其重新分配为随机变量呢?

抱歉,如果这是一个愚蠢的问题,但我对此很陌生,我不知道自己在做什么。请保持解释简单。

编辑:这里有更多代码:

def something1(Random, useless, whatever)

etc...

def something2(Random, useless, whatever)

etc...

...

main():

   for index in range(800):

     Random = randint(1, 10)

     something1(Random, useless, whatever)


Random = randing(1, 10)


something2(Random, useless, whatever)

这会持续一段时间。

4

6 回答 6

1

如果您所说的确实是您想要的(即每次使用时都会给出随机值的变量),那么您并不真正想要变量。Random只需用替换每个实例randint(0, 10)。或者,您可以制作自己的功能:

def rand10():
    return randint(0, 10)

然后在rand10()每次使用Random变量时调用。

于 2012-10-14T02:07:00.780 回答
0

Random 只是一个整数类型,包含由 randint() 生成的值。因为它是一个整数类型,所以它不能在每次调用时改变它的值而不被重新分配。

你可以做的是定义一个类,这样当它被告知打印时,它返回一个不同的值:

from random import randint

class Random:
   def __str__(self):
      return str(randint(1,10))

random = Random()
print(random)   # prints a value
print(random)   # could print a different value
print(random)   # could print a different value
于 2012-10-14T02:14:47.877 回答
0

真正糟糕的想法领域,你几乎可以做任何你想做的事情,但是......由于我们在这里提出了一个非常糟糕的想法,我不会真正写出代码,但我会告诉你如何去做吧,如果你愿意,你可以想办法……

  1. 创建一个新模块,让我们调用它Util
  2. 在 中写一个类Util,我们将调用该类Crazy
  3. 在 classUtil.Crazy中,创建一个名为的属性Random,其 getter 返回一个随机值(具有您禁止的任何边界)
  4. 在模块级别创建一个Util.Crazy被调用的实例C
  5. 现在你可以在C.Random任何时候拼写出你想要一个新的值

我没有考虑太多,但我没有看到任何明显的方法来摆脱C.Random它并调用它Random(如果你分配RandomCrazy().Random,它只是坚持价值,而不是绑定)。我敢肯定你可以用 做一些真正可怕的事情globals(),或者你可以使用原始描述符协议来做你想做的事。

于 2012-10-14T02:20:15.970 回答
0

你好,这可能会迟到,但你可以尝试将随机分配给 none,然后使用 while 函数给程序一个循环,然后你可以将它分配给你想要的随机数范围。我举个例子;

import random
Random = None
while Random != 0:
     Random = random.randint(0,10)
     print(Random)

这意味着只要它们不为零,值就会不断生成,如果生成零,则程序会跳出循环

于 2021-03-12T13:57:55.230 回答
0
import numpy as np
x = "np.random.randn()"
for i in range(3):
   print(eval(x))

eval() 评估传递给它的 str 变量中写入的内容。每次调用 eval(x) 时,都会得到一个新的随机变量。

有点作弊,我同意,但让代码更简洁一些,因为 eval(x) 看起来肯定比调用某个表达式更好(特别是如果你的 rv 分布是由一个复杂的表达式定义的,并且你经常在代码中使用它) .

于 2020-02-18T07:08:21.823 回答
-1
import random
def numbergeneration():
    number = (random.randrange(0,101))
    print(number)
    return number

我相信这就是你所需要的。

于 2021-01-16T13:19:16.593 回答