【发布时间】:2014-02-25 14:12:01
【问题描述】:
我正经历着“那些”日子,而我所看到的一切都一团糟。
我有一个 Die 类(如 Dice),我想掷出 100 个,并计算每个数字的出现次数。比如说,在 100 个骰子中,有 40 个是数字“6”。
问题是,如果我硬编码 if face_value == 1 类型的解决方案 - 如果有人更改模具上的面数 - 我有一点问题 - 因为它不会计算它们。
我认为解决此问题的最佳方法是制作一个列表(与可能的骰子面大小相同)并在每次出现时增加列表中的数字。
简而言之,如何增加每个列表元素内部的值?
diceList = [ Die() for q in range(100)]随机导入 类模具: 面值 = 1 大小 = 6 def getSize(self): 返回 self.size def getFaceValue(self): 返回 self.face_value def 滚动(自我): self.face_value = random.randint(1, self.size) 定义滚动列表(n): 我 = 0 a = n[0].getSize() 人脸列表 = [0] * 一个 对于死在 n: n[i].roll() x = n[i].getFaceValue() 打印(n[i].face_value) #faceList[x-1] = 1+1 #打印(人脸列表) 我 += 1
我已经对其进行了一些重新设计,并且我有办法得到答案 - 但我不确定这是否是一种特别好的方法。
定义滚动列表(n): 我 = 0 人脸列表 = [] a = n[0].getSize() 对于死在 n: n[i].roll() x = n[i].getFaceValue() faceList.append(x) 我 += 1 打印(面部列表) c = 1 当 a >= c 时: 打印(faceList.count(c)) c += 1【问题讨论】: