Python 对于涉及质数跟踪和连续加法的问题,我的代码是否正确?

Python 对于涉及质数跟踪和连续加法的问题,我的代码是否正确?,python,primes,Python,Primes,问题:假设函数的可用性是_素数。假设变量n与正整数相关联。写下所需的语句,找出在超过n之前,可以添加多少素数,从2开始,以递增的顺序依次增加更高的素数[2,3,5,7,11,13,…]。将此数字与变量k关联 守则: def is_prime(): i = 2 k = 0 Again = True while Again = True: if total > n: Again = False for x

问题:假设函数的可用性是_素数。假设变量n与正整数相关联。写下所需的语句,找出在超过n之前,可以添加多少素数,从2开始,以递增的顺序依次增加更高的素数[2,3,5,7,11,13,…]。将此数字与变量k关联

守则:

def is_prime():
    i = 2
    k = 0
    Again = True
    while Again = True:
        if total > n:
            Again = False
        for x in range(2,n):
            if x % i == 0:
                total = total
                k = k
                i += 1
            else:
                total += x
                k += 1
    return k

对于涉及质数跟踪和连续加法的问题,您的代码不正确。也没有别的。明显的问题是它不能运行,所以它不可能是正确的。一个语法错误是:

while Again = True:
应该是:

while Again == True:
另一个原因是,在使用total的值之前,它从未初始化:

total += x
一旦我们解决了这些问题,您的代码仍然无法正常工作。但是让我们后退一点。问题是

假设函数的可用性为_素数

但是你没有这样做——你用名称is_prime编写了你的解决方案。我们应该期望有一个名为is_primen的函数,它测试n是否为prime,返回True或False。您要么得到了这个,要么需要找到一个,编写一个,要么简单地假设它存在,但从来没有实际测试过您的代码。但是一旦你有了这个功能,并且它工作了,你就不应该改变它

下面是我的例子,是_素数函数:

def is_prime(n):
    """ Assume the availability of a function is_prime. """

    if n < 2:
        return False

    if n % 2 == 0:
        return n == 2

    for m in range(3, int(n ** 0.5) + 1, 2):
        if n % m == 0:
            return False

    return True

检查你的头脑,确保结果是合理的。

作业?也许你的同学可以帮忙……你应该解释一下你的代码试图做什么,因为它不清楚。1.您应该假设is_prime可以使用,而不是自己实现它。2.当循环控制相当古怪的时候,你会感到惊讶。应该是我们不在这里做作业的时候。
for n in range(2, 100):
    # Assume a variable n has been associated with a positive integer
    print(n, primes_in_sum(n))