【问题标题】:Why given 2 arguments, TypeError: takes exactly 2 arguments (1 given)?为什么给定 2 个参数,TypeError: 正好需要 2 个参数(1 个给定)?
【发布时间】:2021-01-18 15:20:19
【问题描述】:

我不知道为什么我的函数需要两个参数,当给定两个参数时,会返回一个错误,说我只给了一个参数。我正在尝试获取斐波那契算法的输出,然后将其乘以第二个用户输入。

谢谢

 29 def population(n,k):
 30     n = int(sys.argv[1])
 31     k = int(sys.argv[2])
 32 
 33     if n in range (1,10000):
 34         pass
 35     else:
 36         print("day out of range")
 37     if k in range(1,10000):
 38         pass
 39     else:
 40         print("growth rate out of range")
 41     FibArray = [0,1]
 42 
 43     #reproduction rate is Fn=F(n-1)+F)n-2)
 44     #start fibonacci sequence on one and end on the nth day, multiply by the rate or reproduction
 45     while len(FibArray) < n + 1:
 46         FibArray.append(0)
 47 
 48     if n <=1:
 49         return n
 50     else:
 51         if FibArray [int(n)-1]==0:
 52             FibArray[n-1]=population(n-1)
 53 
 54         if FibArray[n-2]==0:
 55             FibArray[n-2]=population(n-2)
 56 
 57     FibArray[n]= FibArray[n-2] + FibArray[n-1]
 58     X = FibArray[n]
 59     return k * X
 60 
 61 if __name__=="__main__":
 62     n = int(sys.argv[1])
 63     k = int(sys.argv[2])
 64     pop = population(n, k)
 65     print("Your population size on day {} is {}".format(n,pop))




Traceback (most recent call last):
  File "./fibonacci.py", line 64, in <module>
    pop = population(n, k)
  File "./fibonacci.py", line 55, in population
    FibArray[n-2]=population(n-2)
TypeError: population() takes exactly 2 arguments (1 given)

【问题讨论】:

    标签: dynamic dynamic-programming fibonacci indexoutofrangeexception


    【解决方案1】:

    要回答您的问题,我会说您再次阅读了错误。它说错误出现在第 55 行,在那里您调用了 population() 函数,只有一个参数是 (n-2)。那是在制造一个问题。你需要在那里纠正你的代码。

    【讨论】:

    • 你认为在函数的那部分添加一个k会解决它吗? --> FibArray[n-2]=population(n-2,k)
    猜你喜欢
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-07
    • 2012-03-15
    • 2014-05-06
    • 1970-01-01
    相关资源
    最近更新 更多