我在Python中使用整数写入时遇到了一个奇怪的问题(我在Sage工作)
我首先尝试运行代码
m=7
m.bits()
那里的一切都很好。然后,我想用随机整数做这个。因此,我试图运行代码
import random
m=randint(2,10)
m.bits()
这就是我收到错误的地方" AttributeError:' int'对象没有属性' bits'"好像函数randint没有返回一个整数。我设法通过
强制它成为一个整数m=m+0
然而,我仍然想知道为什么第一次写作不起作用。我不得不说我正在编写在线圣人,即使我不认为这应该是一个问题。
提前致谢!
答案 0 :(得分:1)
对于随机Sage整数(使用各种分布),请使用ZZ.random_element
(doc here)。试试this example:
a = ZZ.random_element(2,10)
a.bits()
我已经开放Trac 22131来澄清这个问题;一个人不应该做这个精心设计的事情,在顶层可能有一个random_integer
功能。 (例如,有一个random_prime
。)