Python для цикла, остающегося на 0

#python #for-loop

#python #для цикла

Вопрос:

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

Комментарии:

1. можете ли вы показать нам после print (n), как будет выглядеть результат, если вы это сделаете print(primelist) ?

2. можете ли вы показать нам содержимое Primes1.txt файла?

3. Добро пожаловать в StackOverflow. Поскольку причина вашей проблемы была в текстовом файле, который вы не указали в своем вопросе, этот вопрос не полезен другим. Поэтому, пожалуйста, удалите этот вопрос. Мы с нетерпением ждем от вас новых материалов.

Ответ №1:

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

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

 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)
  

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

Ответ №2:

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

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

С этого момента каждое отдельное n делилось на 2 (индекс 0) из-за моего n = n 2