我正在研究一个使用python类的问题,并且有一个构造函数来给出一个die的边数和一个用于根据边数返回的随机数掷出die的函数.我意识到代码是非常基本的,但是我很难理解如何总结三个不同侧面的掷骰子.由于变量正在传递函数实例,因此获取该值的最佳方法是什么?这就是我所拥有的.
*澄清......我可以将roll1.roll_dice()的总数加起来,但我必须单独显示每个掷骰子,然后显示三个骰子的总数.我可以做其中任何一个但不是两个.
class Die():
def __init__(self, s = 6):
self.sides = s
def roll_die(self):
x = random.randint(1,self.sides)
return x
roll1 = Die() #Rolling die 1 with the default side of 6
roll2 = Die(4) #Rolling die 2 with 4 sides
roll3 = Die(12) #Rolling die 3 with 12 sides
print roll1.roll_die()
print roll2.roll_die()
print roll3.roll_die()
Run Code Online (Sandbox Code Playgroud)
dF.*_*dF. 10
您可以将结果存储在列表中:
rolls = [Die(n).roll_die() for n in (6, 4, 12)]
Run Code Online (Sandbox Code Playgroud)
然后你可以显示个别结果
>>> print rolls
[5, 2, 6]
Run Code Online (Sandbox Code Playgroud)
或者总结一下
>>> print sum(rolls)
13
Run Code Online (Sandbox Code Playgroud)
或者,相反,您可以保持总计:
total = 0
for n in (6, 4, 12):
value = Die(n).roll_die()
print "Rolled a", value
total += value
print "Total is", total
Run Code Online (Sandbox Code Playgroud)
(编辑以反映对问题的更改/澄清)