【发布时间】:2017-12-05 16:09:17
【问题描述】:
我想定义 500 个变量。所有这些都应该是从二项分布生成的随机数。然后我想在 HTML 页面中显示它们中的每一个。
我的代码如下:
# draw a number from the distribution
def a1s1(self):
return 3 * np.random.binomial(1, 0.3)
# get rid of the decimal point
def a1s1int(self):
return int(self.a1s1())
# define 500 variables
number1 = models.FloatField()
number2 = models.FloatField()
....# this should continue in this way until "number500"
# generate a list of 500 random numbers
def drawnumbers(self):
rnlist = []
numbers = dict()
for i in range(1, 500):
numbers[i] = self.a1s1int()
rnlist.append(numbers)
return numbers
# to get each element from the list
number1 = self.drawnumbers[1]
number2 = self.drawnumbers[2]
这给了我错误:
NameError: name 'self' is not defined
有时我收到另一个错误“NoneType”不可调用。
你能帮忙吗?我对 Python 真的很陌生。非常感谢。
【问题讨论】:
-
看来您是 Python 新手。与其直接跳到 numpy 之类的模块,不如考虑学习一些基础教程,例如变量、条件和循环结构、列表和字典等数据结构、函数和 OOP。
-
首先,代码最后两行的变量
self从未定义过。你必须在某个地方定义它。同样,你认为你调用了一个函数,但你没有。其次,不要使用名称self,因为它在类方法中用作对对象的引用。第三,你到底为什么想要 500 个命名变量而不是一个 500 个元素的列表? -
我想在点击 html 页面上的按钮时显示每个元素。单击一次,显示一个。再次单击,显示第二个。我实际上认为一个 500 元素的列表就足够了。我只是不知道如何将列表中的元素传递给html页面