我想创建一个能够“滚动”的代码。 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
答案 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)])