函数 randint() 不是 return 整数

Function randint() does not return an integer

我在 Python(我在 Sage 中工作)

中写入一个整数位时遇到了一个奇怪的问题

我第一次尝试运行代码

m=7
m.bits()

那里一切正常。然后,我想用一个随机整数来做到这一点。因此,我尝试 运行 代码

import random
m=randint(2,10)
m.bits()

这就是我收到错误 "AttributeError: 'int' object has no attribute 'bits'" 的地方,好像函数 randint 没有返回整数。我设法通过

强制它成为一个整数
m=m+0

不过,我还是很纳闷为什么第一次写的不行。我不得不说我是在 online sage 上编码的,即使我不认为这应该是个问题。

提前致谢!

对于随机 Sage 整数(使用各种分布),使用 ZZ.random_elementdoc here). Try this example:

a = ZZ.random_element(2,10)
a.bits()

我已经打开 Trac 22131 来澄清这个问题;一个人不应该做这么复杂的事情,顶层可能有一个 random_integer 函数。 (例如,有一个random_prime。)