协助缺少必要的位置参数

时间:2015-09-28 02:34:11

标签: python

def computeValue(condition , gps , wifi , camera):
    int(val1=0)
    int(val2=0)

    val1 = (condition + gps + wifi + camera)
    val2 = (condition + gps + wifi + camera)
    return val1
    return val2

def main():

    w=0;
    x=0;
    y=0;
    z=0;
    q=0;
    r=0;
    s=0;
    t=0;
# it then has conditions to assign values to wxyzqrst, and then

    val1 = computeValue(w+x+y+z)
    val2 = computeValue(q+r+s+t)
main()
  

错误:TypeError:computeValue()缺少3个必需的位置参数:'gps','wifi'和'camera'

任何人都知道我做错了什么?

1 个答案:

答案 0 :(得分:0)

于;

wwii,是对的 - 一个教程会为你提供很好的服务,因为这是编程的基础,所以如果你不花一些时间学习基础知识,你将有很长的路要走。

但是,通常,将函数(在您的情况下为computeValue)视为数学算法。想象一下,它是计算矩形的面积。你会说Area = F(x,y)= x * y。由此可以说F(1,2)= 2,F(2,2)= 4,F(4,3)= 12,依此类推。但你不能说F(3 * 4) - 这没有意义,因为它意味着与F(12)相同。您的算法定义需要两个参数,而不是一个。

现在 - 将其扩展到您的computeValue函数。您将其定义为需要4个参数(也称为参数)。但是,您尝试使用“w + x + y + z”调用它。在调用函数之前,Python将足够聪明地添加这些值。很像上面的F(12),你只给出一个参数(或参数)。您需要用逗号分隔的值,例如computeValue(w,x,y,z)

多数问题#1。您的下一个问题是您无法从函数(val1和val2)返回两次。你可以从一个函数返回一个列表,数组,元组等,并使用每个部分,但我认为这会使你现在已经准备好的东西复杂化了。现在,如果你想要两个不同的计算,只需要做两个函数。