首页 > 解决方案 > 我得到这个 Python 类型不匹配有什么原因吗?

问题描述

当我运行它时,我收到以下类型不匹配错误,我不知道为什么 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)

标签: python

解决方案


因为您返回的是字符串return "Incorrect input"而不是返回 case n < 0,所以引发异常。


推荐阅读