我正处于'那些'日子之一,而我所看到的一切只是搞乱了。
我有一个Die类(如在骰子中),我想滚动其中的100个,并计算每个数字的出现次数。比方说,在100个骰子中,40个是数字'6'。
问题是,如果我硬编码if face_value == 1类型的解决方案 - 如果有人改变了模具上的面孔数量 - 我有一点问题 - 因为它不会计算它们。 / p>
我认为解决这个问题的最佳方法是制作一个列表(与可能的模具面相同的大小)并在每次出现时增加列表中的数字。
简而言之,如何增加每个列表元素中的值?
diceList = [ Die() for q in range(100)]
import random class Die: face_value = 1 size = 6 def getSize(self): return self.size def getFaceValue(self): return self.face_value def roll(self): self.face_value = random.randint(1, self.size)
def rollList(n): i = 0 a = n[0].getSize() faceList = [0] * a for Die in n: n[i].roll() x = n[i].getFaceValue() print(n[i].face_value) #faceList[x-1] = 1+1 #print(faceList) i += 1
我已经重新做了一点,我有办法得到答案 - 我不确定这是否是一种特别好的方法。
def rollList(n): i = 0 faceList = [] a = n[0].getSize() for Die in n: n[i].roll() x = n[i].getFaceValue() faceList.append(x) i += 1 print(faceList) c = 1 while a >= c: print(faceList.count(c)) c += 1
答案 0 :(得分:1)
def rollList(n):
a = n[0].getSize()
faceList = [0] * a
for d in n:
d.roll()
x = d.getFaceValue()
faceList[x-1] += 1