与缺少必需的位置参数
问题描述:
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()
error: TypeError: computeValue() missing 3 required positional arguments: 'gps', 'wifi', and 'camera'与缺少必需的位置参数
任何援助有任何想法,以什么即时做错了什么?
答
余;
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)。你可以从一个函数返回一个列表,数组,元组等,并使用每个部分,但我认为这会使事情复杂化,超出了你现在准备好的东西。现在,如果你想要两个不同的计算,只需要两个函数。
您是否尝试传递4个参数? –
4个参数?哪里?对不起,在这个 –
完成noob'w + x + y + z'是一个参数。你还需要3个。 –