[英]Is there a reason I'm getting this Python type mismatch?
当我运行它时,我得到以下类型不匹配错误,我不知道为什么 var 被视为字符串而不是 int。 有什么我在这里想念的吗?
`Traceback (most recent call last):
File "main.py", line 5, in <module>
test.assert_equals(productFib(4895), [55, 89, True])
File "/home/codewarrior/solution.py", line 7, in productFib
while var <= prod:
TypeError: unorderable types: str() <= int()`
def productFib(prod):
# create Fibonacci array
var = 0
elem = 0
boo = False
while var <= prod:
var = fib(elem)*fib(elem+1)
if var == prod:
boo = True
elem += 1
return [fib(elem), fib(elem+1), boo]
# function to return what the nth fibonacci number is
def fib(n):
if n < 0:
return "Incorrect input"
elif n == 1:
return 0
elif n == 2:
return 1
else:
return fib(n-1)+fib(n-2)
因为您正在返回一个字符串return "Incorrect input"
而不是在n < 0
的情况下返回,而是引发异常。
您将“错误输入”作为字符串返回。 您的代码将继续向下递归移动,最终会尝试添加 fib(-1)+fib(0),这将导致尝试将字符串添加到整数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.