当 n 为整数时,如何返回我的输出始终是“斐波那契数列以:无”。你能告诉我我的错误并帮助我解决它们吗?
我已经声明了以下代码:
def append_fibonacci(integer_list):
if len(integer_list) >= 2:
sum_last_two = ((integer_list[-1]) + (integer_list[-2]))
integer_list.append(sum_last_two)
else:
integer_list.append(1)
def fibonacci(max):
my_list = []
append_fibonacci(my_list)
while my_list[-1] <= int(max):
append_fibonacci(my_list)
def main():
n = input('Enter a non-negative integer >')
if n.isdigit() == True:
print('The Fibonacci series starts with: ' + str(fibonacci(n)))
else:
print(str(n) + ' is not a non-negative integer')
输出错误:#TEST 1# main() 返回无输入:40
outputs:
Enter a non-negative integer >
** ERROR ** The Fibonacci series starts with: None
* EXPECTED * The Fibonacci series starts with: [1, 1, 2, 3, 5, 8, 13, 21, 34]
----------
您的斐波那契函数不返回任何内容。如果您不指定函数返回的内容,它将返回None
. 试试这个:
def fibonacci(max):
my_list = []
append_fibonacci(my_list)
while my_list[-1] <= int(max):
append_fibonacci(my_list)
return my_list
PS您可能还想考虑不使用max
它已经是函数的名称作为参数名称。在这里没关系,但是您基本上已经在范围内覆盖了一次 Python 的内置函数fibonacci
,除非您有特定的理由这样做,否则我建议您不要这样做。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句