Python &引用;类型错误:应为range()整数结束参数,获得浮点值;甚至使用int()
这是完整的代码。让我困惑的是,我使用int将l/2的上限转换为整数,但它仍然不起作用。除非。。。我不知道。谢谢Python &引用;类型错误:应为range()整数结束参数,获得浮点值;甚至使用int(),python,python-2.7,Python,Python 2.7,这是完整的代码。让我困惑的是,我使用int将l/2的上限转换为整数,但它仍然不起作用。除非。。。我不知道。谢谢 def switcheroo(vec): from math import ceil from __future__ import division l = len(vec) - 1 holdingcell = [] for i in range(int(ceil(l/2))): holdingcell = vec[i]
def switcheroo(vec):
from math import ceil
from __future__ import division
l = len(vec) - 1
holdingcell = []
for i in range(int(ceil(l/2))):
holdingcell = vec[i]
vec[i] = vec[l-i+1]
vec[l-i+1] = holdingcell
return vec
我得到的错误是:
>>> o = switcheroo(v)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "switcheroo.py", line 8, in switcheroo
for i in range(int(ceil(l/2))):
TypeError: range() integer end argument expected, got float.
o=开关o(v)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
switcheroo中第8行的文件“switchero.py”
对于范围内的i(int(cel(l/2)):
TypeError:应为range()整数结束参数,获得浮点值。
请显示完整的错误信息。您可以向我们显示更完整的代码吗?l声明和可能的值并完成循环您提供的代码是正确的:
int
函数将浮点数转换为整数。错误在代码中的其他地方。@MarcoBonelli:说得好!从我看来,这段代码看起来不错。值得一提的是,您的代码中有两个错误:第一,From\uuuuu future\uuuu\import division
行应该位于文件的开头,而不是函数内部;其次,您的vec[l-i+1]
超出范围。顺便说一句,代码的其余部分工作正常,并且在处理代码时,您的范围不会给出任何错误。您可以重新定义int()
以执行其他操作或执行其他操作。。。否则我对此一无所知。