Python函数不起作用

时间:2012-02-11 00:35:35

标签: python function

我正在学习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)

4 个答案:

答案 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)