#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