Python for循环保持在0

2024-05-08 02:43:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个小代码,它应该从一个txt文件中读取素数列表并生成下一个素数。 为了检查我的数字是否是素数,我尝试用已经生成的列表中的每个素数除法。 但是,我的for循环保持在0,我不知道为什么。 这是我的密码:

primes = open("Primes1.txt").read().split()

primelist = []
for i in primes:
    primelist.append(i)
    print(primelist)

n = int(primelist[len(primelist) - 1]) + 1

print(n)

while n < 100 :
    n_prime = 1
    for i in range (len(primelist)) :
        print(i)
        if n % int(primelist[i]) == 0:
            n_prime = 0
            break
    if (n_prime == 1) :
        primelist.append(str(n))
        print(primelist)
        open("Primes1.txt", "a").write("\n" + str(n))
    n = n + 2

Tags: intxt列表forlenifopenprime
2条回答

您需要先读取每一行,然后遍历文本文件的每一行。然后可以将每个素数附加到新列表中。(如果每个数字都在新行上)例如:

如果素数在新行上:

primeFile = open("Primes1.txt", "r")
primeList = []

for prime in primeFile:
    primeList.append(prime)

如果素数都在一行上,用空格(“”)隔开:

 primeFile = open("Primes1.txt", "r")
    primeList = []

    for line in primeFile:
        primesInLine = line.split()
        for prime in primesInLine:
            primeList.append(prime)

这两种方法都应该奏效

发现了问题。我的Primes1.txt文件有以下数字:2,3,5,7

在这一行:n=int(primelist[len(primelist)-1])+1,n被设置为8

从这一点来说,每一个n都可以被2整除(索引0),因为我的n=n+2

相关问题 更多 >