问题描述
我不知道为什么我的带有两个参数的函数在给定两个参数的情况下会返回一个错误,提示我仅给定了一个参数。我试图获取斐波那契算法的输出,然后将其乘以第二个用户输入。
谢谢
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)
解决方法
要回答您的问题,我想您会再次读取该错误。它说错误发生在第55行,您在其中仅使用一个参数population()
调用了(n-2)
函数。那就是一个问题。您需要在那里修改代码。