小编Tro*_*rse的帖子

在Python 3中判断一个数字是否是平方数的最快方法是什么

我试图根据列表中的数字是否为平方数来返回 True/False 输出。

该列表需要多次检查,并且列表可以是任何正整数,这意味着该整数可能非常大,事实上,对于使用涉及 math.sqrt() 函数的其他解决方案来说太大,这会产生所示的溢出错误这里:

userList = [1*10**1000]
print ([x for x in userList if math.sqrt(x).is_integer()])

>>>Traceback (most recent call last):
print ([x for x in userList if math.sqrt(x).is_integer()])
OverflowError: int too large to convert to float
Run Code Online (Sandbox Code Playgroud)

这是我的*方法:

def squares():
    for i in userList:
        if i in squares: #the list in which all the square numbers are stored
            return True
        else:
            return False
Run Code Online (Sandbox Code Playgroud)

*我当前的想法是将平方数预先准备到一个单独的列表中,以便比较它们,但我可能正在寻找一种替代的、更快的方法,因为 userList 可能会变得非常大。

我想将返回的输出存储在单独的列表中,如下所示:

out = []
for …
Run Code Online (Sandbox Code Playgroud)

python math numbers function list

1
推荐指数
1
解决办法
1071
查看次数

标签 统计

function ×1

list ×1

math ×1

numbers ×1

python ×1