我正在学习Python,我在关于函数的章节,我编写了一个代码:
import random
def roll(sides, dice):
result = 0
for rolls in range(0,dice):
result += random.randint(1, sides)
return result
但是,当我尝试进入该功能时,会出现
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
roll ()
TypeError: roll() takes exactly 2 positional arguments (0 given)
答案 0 :(得分:5)
你的函数需要两个参数。您需要传递sides
的值和dice
的另一个值。
因此,正确调用函数的示例如下所示:
roll(1,3)
当然,有时你希望你的函数有默认参数。换句话说,您希望能够在没有任何显式参数的情况下调用函数。为此,请在函数定义中为参数添加默认值。假设您希望函数默认情况下像普通模具一样运行。您需要做的就是:
def roll(sides = 6, dice = 1)
使用此函数,诸如roll()
之类的调用将假定您将6和1作为参数传递。当然,您总是可以使用参数调用函数,它将覆盖默认值。
TL; DR:传递参数,定义默认参数或两者。
答案 1 :(得分:1)
该函数需要两个参数,如
twoDice = roll(6, 2)
或
nineCoinFlips = roll(2, 9)
答案 2 :(得分:1)
>>> import random
>>> def roll(sides, dice):
... result = 0
... for rolls in range(0,dice):
... result += random.randint(1, sides)
... return result
...
>>> roll(6, 8)
23
你也可以设置默认值:
>>> import random
>>> def roll(sides = 6, dice = 2):
... result = 0
... for rolls in range(0,dice):
... result += random.randint(1, sides)
... return result
...
>>> roll()
10
答案 3 :(得分:1)
你需要在()之间输入数字。像roll(3,1)