我的代码中有一些错误:
if type(random) is BuiltinMethod or type(getrandbits) is Method:
k = n.bit_length() # don't use (n-1) here because n can be 1
r = getrandbits(k) # 0 <= r < 2**k
while r >= n:
r = getrandbits(k)
return r
AttributeError:“地图”对象没有属性“ bit_length”
答案 0 :(得分:0)
生成map
对象很容易,例如:
>>> map(float, range(3))
<map object at 0x10287cf98>
>>>
>>> list(map(float, range(3)))
[0.0, 1.0, 2.0]
很明显,您期望n
应该是int
,例如:
>>> n = 63
>>> n.bit_length()
6
>>> n += 1
>>> n.bit_length()
7
您选择不向我们显示所有相关代码。
但是在这行代码的某个地方,您的代码为map
分配了一个n
对象,
而不是整数。
产生 AttributeError:'map'对象没有属性'bit_length'诊断。