Python TypeError:不支持<;的操作数类型<;:';int';和';浮动';

Python TypeError:不支持<;的操作数类型<;:';int';和';浮动';,python,bitwise-operators,Python,Bitwise Operators,有一段开源代码,我试着玩跳棋,代码工作得很好,直到“拿一块”部分,出现以下错误: line 73, in make_move taken_piece = int(1 << sum(i for (i, b) in enumerate(bin(move)[::-1]) if b == '1')/2) TypeError: unsupported operand type(s) for <<: 'int' and 'float' 第73行,在make_move中 ta

有一段开源代码,我试着玩跳棋,代码工作得很好,直到“拿一块”部分,出现以下错误:

line 73, in make_move
    taken_piece = int(1 << sum(i for (i, b) in enumerate(bin(move)[::-1]) if b == '1')/2)
TypeError: unsupported operand type(s) for <<: 'int' and 'float'
第73行,在make_move中

take_piece=int(1不能按浮点/十进制移位位,错误很明显。
sum(…)/2
在当前操作中给出浮点


但是,您可以在Python 3中使用
/
执行整数除法。对于Python 2,
/
执行整数除法(对于int操作数),除非您覆盖了默认行为。

您不能按浮点/十进制移位位,错误非常明显。
求和(…)/2
在当前操作中提供浮点值


但是,您可以在Python 3中使用
/
执行整数除法。对于Python 2,
/
执行整数除法(对于int操作数)除非您已经重写了默认行为。

正确设置代码格式,然后我们将能够帮助您使用Python 3:使用
//2
或获得浮点值。显然,此软件是为Python 2编写的,而您正试图使用Python 3运行它。在遇到其他问题之前,这可能只是时间问题。格式化您的代码正确地说,然后我们将能够帮助您使用Python 3:使用
//2
或获得浮点值。显然,此软件是为Python 2编写的,而您正试图使用Python 3运行它。在遇到其他问题之前,这可能只是时间问题。在Python 2中,它已经是int,因为两个操作数都是int。
//code>不是如果在Python中执行
2.5/2
,则执行整数除法。听起来好像
/
总是执行整数除法。(让我们忽略是否可以重写此操作)。我的观点是,该操作取决于参数,因为它们恰好都是int,所以它进行整数除法,而不是因为使用了
/
。顺便说一句,当应用于整数时,答案是关于
/
。谢谢,更新了!在Python 2中,它已经是int了,因为两个操作数都是int。
/
不做整数d如果在Python中使用
2.5/2
,则使用ivision。您使其听起来像
/
总是使用整数除法。(忽略是否可以重写此项)。我的观点是,该操作取决于参数,因为它们恰好都是整数,所以它进行整数除法,而不是因为使用了
/
。顺便说一句,当应用于整数时,答案是关于
/
。谢谢,更新了!