Python 返回True后继续while循环
我正在创建一个函数,当一个数(这里的X)是素数时,该函数返回True 所以我检查给定的数字是否可以被2到X-1的整数整除 但当检查返回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
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