Python循环(for或while)

时间:2017-03-08 09:06:25

标签: python loops

我必须创建一个消耗2个列表和素数的函数,如果L与素数相关,则生成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)

1 个答案:

答案 0 :(得分:2)

for i in (2, a):应为for i in range(2, a)(2, a)是一个元组,您的支票仅为2和a,而不是两者之间的全部。