parameters[: (len(parameters) / 2)] 返回错误

问题描述 投票:0回答:2

上面的代码返回错误:

TypeError: slice indices must be integers or None or have an __index__ method

为什么会这样——尤其是我给出的向量的长度是一个能被2整除的int(事实上,我检查了这一点)?

我认为整数在Python中有精确的表示,所以len(a)/2应该总是返回一个int

python slice
2个回答
0
投票

即使

parameters
可以被 2 整除而没有余数,
len(parameters)/2
也将返回
float
。使用
len(parameters)//2
将其转换为
int


0
投票

len(a)/2
是楼层划分。

它总是返回一个浮点数。

你应该这样做

integer division //

parameters[: (len(parameters) // 2)] 

示例

4/2

2.0

4//2

2
© www.soinside.com 2019 - 2024. All rights reserved.