繁体   English   中英

在python中掷骰子N次

[英]Rolling a dice in python n times

我想创建将“滚动” 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

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 ,则可以为变量使用其他名称。

我会用:

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)])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM