Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:为类中的变量分配随机整数_Python_Random_Integer - Fatal编程技术网

Python:为类中的变量分配随机整数

Python:为类中的变量分配随机整数,python,random,integer,Python,Random,Integer,我在一个类中有大量变量,如下所示: class Variables: num1 = "Text 1" num2 = "Text 2" num3 = "Text 3" 等等。我需要为每个变量指定一个范围为1,30的特定数字,以便在类中,每个变量都由不同的整数值表示。任何帮助都将不胜感激。谢谢大家! 你是说像这样 class Variables(): def __init__(self): for i in range(1, 31):

我在一个类中有大量变量,如下所示:

class Variables:
  num1 = "Text 1"

  num2 = "Text 2"

  num3 = "Text 3"
等等。我需要为每个变量指定一个范围为1,30的特定数字,以便在类中,每个变量都由不同的整数值表示。任何帮助都将不胜感激。谢谢大家!

你是说像这样

class Variables():
    def __init__(self):
        for i in range(1, 31):
            setattr(self, 'num{}'.format(i), 'Text {}'.format(i))

v = Variables()

print v.num1 # Text 1
print v.num30 # Text 30

在使用变量num1、num2等作为名称时,类中有很多数据看起来像“name”,而在值看起来像文本1、文本2等时,每个“name”映射到一个“value”

您可能会发现为这些数据使用字典比将每个name:value定义为单独的变量=value更容易

例如,您最终会得到类似于:

class Variables(object):
    numbers = {
        "num1": "Text 1",
        "num2": "Text 2",
        "num3": "Text 3",
    }
现在,在程序上自动生成一种奇特的方式来表示字典,变得更加简单:

class Variables(object):
    numbers = {
        "num{}".format(i): "Text {}".format(i)
        for i in range(100)
    }
现在,如果希望它们是随机数:

import random

class Variables(object):
    numbers = {
        "num{}".format(i): "Text {}".format(random.randrange(100))
        for i in range(100)
    }

v = Variables()
print v.numbers["num50"]

首先创建变量并将其添加到字典中:

dic = {num1:"Text 1", num2 : "text2",..}
接下来创建一个变量obejct:

  a = Variables()   
然后调用set_dic类方法:

  a.set_dic(dic)
其关联的每个变量都是一个介于1,30之间的随机整数

from random import randint  
class Variables:
      def __init__(self):
            self.dic = {}
      def set_dic(self, dic):
            self.dic =  dic
            for x in dic:
                  dic[x] = randint(1,30)

可能重复的Python不使用var声明!在程序的后面,我希望能够获得用户输入,以便调用变量。这主要是为了一个基于随机函数和用户输入的游戏。@Arthur:我想你最好使用dict或list,而不是很多变量!他指的是随机整数,我想是,随机整数。谢谢你的帮助though@Arman-OP表示为每个变量分配一个范围为1,30的特定数字。将其转换为随机数不需要花费太多时间,但您不知道类上定义了哪些字段。@cricket_007在问题标题中,他说在这个范围之间分配随机整数非常感谢您的反馈。我在PythonIdle中运行了代码,并对其进行了一些调整以适应我的参数,效果非常好。谢谢