2016-05-02 40 views
-3

我是新来的编码,我是一个可怕的noob在Python。我知道基本的Java,ActionScript,HTML等,但这是我第一次使用Python。方法定义错误:缺少1个需要的位置参数

我需要做的就是创建一个变量i,给它赋一个数值(比如说1),然后将该变量传递给一个方法。

该方法将在点击按钮时激活,并将修改i变量为不同的值。

这是到目前为止我的代码:

i = 1 
print(i) 
def record(i) 
print("film") 
if i == 1: 
    i=2 
elif i == 2: 
    i=1 
else: 

我得到以下错误:

record() missing 1 required positional argument: 'i'

回答

1

您的格式是有点过了,它看起来像你的else声明实际上并没有这样做什么:

i = 1 
print(i) 
def record(i): 
    print("film") 
    if i == 1: 
    i=2 
    elif i == 2: 
    i=1 

你也使用i变量作为PARAM请参阅record函数,以便对i所做的任何更改都不会反映在第一行的i中。

换句话说,这种方法并没有真正做任何事情。是i=1打算在课外修改i?如果是这样,请在def record(i)中更改参数的名称,使其不冲突。

+2

它不只是“关闭”,它也缺少冒号。 – donkopotamus

3

这很容易解决,你只需要在函数的末尾添加一个:并缩进里面的项。您还需要在函数的开头添加global以便能够更改变量i。另外,不要忘记在最后的else声明之后添加代码,或者删除它。对于你的代码,它看起来像这样:

 
i = 1 
print(i) 
def record(i): 
    global i 
    print("film") 
    if i == 1: 
     i=2 
    elif i == 2: 
     i=1 
+2

值得一提的是,不推荐使用全局变量,这是一种令人沮丧的做法。 –

相关问题