簡體   English   中英

幫助缺少所需的位置參數

[英]Assistance with missing required positional arguments

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”

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

於;

wwii,是對的 - 一個教程會為你提供很好的服務,因為這是編程的基礎,所以如果你不花一些時間學習基礎知識,你將有很長的路要走。

但是,一般來說,將函數(在您的情況下為計算值)視為一種數學算法。 想象一下,它是計算矩形的面積。 你會說面積 = 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)返回兩次。 您可以從函數返回列表、數組、元組等,並使用每個部分,但我認為這會使事情變得復雜,超出您目前准備好的范圍。 現在,如果您想要兩個不同的計算,只需創建兩個函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM