Python для цикла, стоящего на 0 - PullRequest
0 голосов
/ 21 марта 2019

Я написал небольшой код, который должен читать список простых чисел из текстового файла и должен генерировать следующие. Для проверки, простое ли у меня число, я пробую деление со всеми простыми числами из уже сгенерированного списка. Тем не менее, мой цикл 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

Ответы [ 2 ]

3 голосов
/ 21 марта 2019

Вам нужно перебирать каждую строку текстового файла, сначала читая каждую строку.Затем вы можете добавить каждое простое число в новый список.(Это если каждый номер находится в новой строке), например:

Если простые числа в новых строках:

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)

Это должно сработать в любом случае

0 голосов
/ 21 марта 2019

Нашел проблему. Мой файл Primes1.txt имел следующие номера: 2, 3, 5, 7

в этой строке: n = int (primelist [len (primelist) - 1]) + 1, n было установлено = 8

С этого момента каждый n был делится на 2 (индекс 0) из-за моего n = n + 2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...