返回True后继续循环

时间:2017-06-19 05:40:51

标签: python while-loop numbers

我正在创建一个函数,当一个数字(此处为X)为Prime时返回True。

所以我正在检查给定数字是否可以被2到X-1之间的整数整除。

但是当检查返回True时,while循环会中断。

帮助

def is_prime(x):
    n = 2

    if x < 2:
        return False

    elif x == 2:
        return True

    else:
        while True and n < x:
            if x % n == 0:
                return False

            else:
                n += 1
                return True    #--The loop is breaking here--

2 个答案:

答案 0 :(得分:2)

您的代码应如下所示:

def is_prime(x):
    n = 2

    if x < 2:
        return False

    elif x == 2:
        return True

    else:
        while n < x:
            if x % n == 0:
                return False

            else:
                n += 1
        # Put the return True after the loop
        return True

print('{}: {}'.format(10, is_prime(10)))
print('{}: {}'.format(11, is_prime(11)))
print('{}: {}'.format(0, is_prime(0)))
print('{}: {}'.format(1, is_prime(1)))
print('{}: {}'.format(2, is_prime(2)))
print('{}: {}'.format(113, is_prime(113)))

输出:

10: False
11: True
0: False
1: False
2: True
113: True

答案 1 :(得分:1)

你在循环中使用了返回语句,所以它退出了方法。您需要更改此循环的逻辑。点击这里: Python Prime number checker