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中运行了代码,并对其进行了一些调整以适应我的参数,效果非常好。谢谢