繁体   English   中英

Python 循环(for 或 while)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM