Python 返回True后继续while循环

Python 返回True后继续while循环,python,while-loop,numbers,Python,While Loop,Numbers,我正在创建一个函数,当一个数(这里的X)是素数时,该函数返回True 所以我检查给定的数字是否可以被2到X-1的整数整除 但当检查返回True时,while循环中断 帮助 def为素数(x): n=2 如果x

我正在创建一个函数,当一个数(这里的X)是素数时,该函数返回True

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

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

帮助

def为素数(x):
n=2
如果x<2:
返回错误
elif x==2:
返回真值
其他:
当为True且n
您在循环中使用了return station,所以它退出了方法。您需要更改此循环的逻辑。请点击此处:

您的代码应该如下所示:

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)))

是的,从函数返回会打断该函数内的循环。您只想在循环完成后
返回True
。顺便说一句,
while True和n
while n
相同。
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