TypeError:<<:'int'和'float'的不受支持的操作数类型
问题描述:
有这个开源代码我正在尝试使用跳棋,代码工作得很好,直到取得一个棋子部分,以及以下错误出现:TypeError:<<:'int'和'float'的不受支持的操作数类型
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'
有关如何解决此问题的任何帮助?
答
您不能通过浮点数/小数位来移位,错误非常明显。 sum(...)/2
在当前操作中给出了一个浮点数。
但是,您可以执行的操作是在Python 3中使用//
执行整数除法。对于Python 2,/
除了重写默认行为外,还会执行整数除法(对于int操作数)。
正确地格式化你的代码,然后我们就可以帮你 – dannyxn
python 3:使用'// 2'或者你得到一个浮点数。 –
显然,这个软件是为Python 2编写的,而您正在尝试使用Python 3来运行它。这可能只是一个时间问题,直到您遇到其他问题。 – phant0m