在python中掷骰子n次

时间:2016-06-27 03:46:40

标签: python

我想创建一个能够“滚动”的代码。 number_of_dice次并找到卷的总和。这就是我所拥有的。当我这样做时,我得到了一个错误" sum = sum + roll" +:built_in_function_or_method和int有不支持的操作数类型。我该如何解决这个问题?

for i in range(0,number_of_dice):
    roll = random.randint(1,number_of_sides + 1)
    sum = sum + roll
    return sum

2 个答案:

答案 0 :(得分:2)

Python有一个内置函数sum,它返回作为序列给出的数字之和。由于您尚未声明变量sum,因此它尝试使用内置函数的+和不允许的数字roll。您需要在循环之前定义变量:

sum = 0
for i in range(0,number_of_dice):
    roll = random.randint(1,number_of_sides + 1)
    sum = sum + roll

return sum

请注意,您应该在循环之后返回,而不是从循环内部返回。此外,如果您不想隐藏内置函数sum,那么您可以为变量使用不同的名称。

答案 1 :(得分:0)

我使用:

import random

def sum_of_dice(number_of_dice, n_sides_on_die=6):
    return sum([random.choice(range(1, n_sides_on_die + 1))
                for i in range(number_of_dice)])