如何简化此Python for循环?

时间:2020-08-27 16:30:51

标签: python loops

我是Python的新手,我想知道如何进一步简化以下代码。该代码通过使用for循环来确定数字n是否为2的幂。

def is_power(n):
    if n <= 2:
        return True
    for i in range(3, n):
        if i * i == n:
            return True
    return False

2 个答案:

答案 0 :(得分:2)

这里是一个过分的简化:)

def is_power_of_two(n):
    return n and not (n & (n - 1))

答案 1 :(得分:0)

您可以通过检查平方根是否为整数来实现:

ValueError: [E103] Trying to set conflicting doc.ents: '(1, 2, 'test:0')' and '(0, 2, 'test:1')'. A token can only be part of one entity, so make sure the entities you're setting don't overlap.