[英]Python Loops (for or while)
我必须创建一个函数,该函数消耗 2 个列表和一个素数,如果 L 在素数上与 M 相关,则生成 True,否则为 False
这是我的代码,我认为它看起来不错,但问题是它应该不会产生 False,我似乎找不到错误。 感谢谁能快速找到问题!
帮手告诉我是否有素数
def is_prime(a):
prime = True
if a < 2:
prime = False
else:
for i in (2, a):
if a%i == 0:
prime = False
break
return prime
出现问题的主要功能
def check_related_over_prime(L,M,p):
related_over_prime = True
for i in range(len(L)):
if is_prime(i):
difference = L[i] - M[i]
if (difference % p != 0):
related_over_prime = False
break
return related_over_prime
例如:这是一个在应该通过的时候通过的测试和一个在应该失败时通过的测试
测试 1: p = 3 -> True
L1 = [0,1,4, 5, 6,10]
M1 = [0,1,1,-1,10, 1]
check.expect('T1', check_related_over_prime(L1,M1,3), True)
测试 2: p = 3 -> False
L2 = [0,1,4, 5, 6,10]
M2 = [0,1,0,1,10, 11]
check.expect('T2', check_related_over_prime(L2,M2,3), False)
for i in (2, a):
应该是for i in range(2, a)
。 (2, a)
是一个元组,您的 for 只检查值 2 和a
,而不是两者之间的所有值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.