我正在学习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)
你的函数需要两个参数.你需要传递一个值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: 传递参数,定义默认参数或两者.