Python函数不起作用

Bil*_*ljk -2 python function

我正在学习Python,我正在阅读关于函数的章节,我编写了一个代码:

import random

def roll(sides, dice):
    result = 0
    for rolls in range(0,dice):
        result += random.randint(1, sides)
    return result
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试进入该功能时,会出现这种情况

Traceback (most recent call last):


File "<pyshell#16>", line 1, in <module>
    roll ()
TypeError: roll() takes exactly 2 positional arguments (0 given)
Run Code Online (Sandbox Code Playgroud)

blz*_*blz 5

你的函数需要两个参数.你需要传递一个值sides和另一个值dice.

因此,正确调用函数的示例如下所示:

roll(1,3)
Run Code Online (Sandbox Code Playgroud)

当然,有时您希望函数具有默认参数.换句话说,您希望能够在没有任何显式参数的情况下调用您的函数.为此,请在函数定义中为参数添加默认值.假设您希望函数默认情况下像普通模具一样运行.你需要做的就是:

def roll(sides = 6, dice = 1)
Run Code Online (Sandbox Code Playgroud)

使用此函数,诸如的调用roll()将假定您将6和1作为参数传递.当然,您总是可以使用参数调用函数,它将覆盖默认值.

TL; DR: 传递参数,定义默认参数或两者.