python - 我得到这个 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)
解决方案
因为您返回的是字符串return "Incorrect input"
而不是返回 case n < 0
,所以引发异常。
推荐阅读
- php - 在 laravel 中使用会话存储和获取数据?
- python - 根据条件从列表中删除元素
- jquery - 没有在分页上被取消选择 - 数据表
- android - 无论如何在这里访问java代码中的gradle ext属性吗?
- node.js - npm open 在服务器中部署时不起作用?
- html - 如何在导航栏中垂直对齐按钮?
- javascript - 单击按钮时的 jQuery 动画表单
- python - DJANGO HEROKU:django.db.migrations.exceptions.InconsistentMigrationHistory:
- java - Dynamodb 本地连接被 Java 拒绝
- azure - 如何在通过 ARM 模板创建部署时从系统变量中读取输入