繁体   English   中英

我遇到这种 Python 类型不匹配有什么原因吗?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM