我有以下功能解決類型錯誤在Python/IPython的
def get_lexographically_next_bit_sequence(self, bits):
"""
Bit hack from here:
http://www-graphics.stanford.edu/~seander/bithacks.html#NextBitPermutation
Generator even does this in poker order rank
so no need to sort when done! Perfect.
"""
t = (bits | (bits - 1)) + 1
next = t | ((((t & -t) // (bits & -bits)) >> 1) - 1)
yield next
while True:
t = (next | (next - 1)) + 1
next = t | ((((t & -t) // (next & -next)) >> 1) - 1)
yield next
該函數返回的錯誤麻煩:
TypeError: unsupported operand type(s) for >>: 'float' and 'int'
注: 這個Python庫僅在2.7和我支持使用2to3才能使用它。圖書館的其他部分按照需要工作,所以我一般有信心2to3工作。
我想在IPython 3.5中運行這個,我聽說這樣的一些錯誤可能發生在IPython中,所以我想知道它是否與此有關。
我用10101測試了代碼,它工作正常。問題的輸入是什麼? –
@MHornbacher位= 31 –
我的結果:Windows 10 1607 python 2.7.3和Python 3.6.0你的代碼在3秒內沒有返回錯誤 –