Почему это не бесконечный цикл? - PullRequest
0 голосов
/ 28 октября 2018
file = open("fileWithNumbers","r")

numList = [1]

for num in numList :
  for line in file :
    line = line.rstrip()
    numList.append(line)

file.close()

В настоящее время я кодирую задание колледжа и не могу понять, как сделать этот фрагмент кода бесконечным циклом.Кажется, что внешний цикл for заканчивается, когда одна итерация по текстовому файлу выполнена.

Я ожидал, что этот фрагмент кода будет выполняться бесконечно, потому что он выполняет итерацию по списку, который увеличивает каждую итерацию.

На самом деле, это не совсем тот сценарий, с которым я имею дело в моем реальном коде, но он прекрасно решает проблему, с которой я столкнулся.Мне нужно, чтобы внешний цикл for не заканчивался одной итерацией внутреннего цикла.Спасибо вам большое!

Ответы [ 3 ]

0 голосов
/ 28 октября 2018

Для бесконечных циклов используйте while loop:

while True:
    # some python code that I want 
    # to keep on running forever

в вашем случае

file = open("fileWithNumbers","r")

numList = [1]

while True:
  for line in file:
    line = line.rstrip()

Более того, вы добавляете numbers и повторяете numList

0 голосов
/ 29 октября 2018

Ваш файл заканчивается после первой итерации.Если вы хотите, чтобы он был inifint, вам нужно снова прочитать файл или выполнить итерацию по списку

# file = open("fileWithNumbers","r") # see line below ...
file_lines = list(open("fileWithNumbers","r"))

numList = [1]

for num in numList :
   for line in file_lines: # this list will always contain the numbers, not a file that ends ...
       line = line.rstrip()
       numList.append(line)

file.close()

Надеюсь, что счетчик объяснит это.

0 голосов
/ 28 октября 2018

Вы добавляете список, а не файл. Таким образом, ваш исходный файл (то, что вы повторяете) никогда не изменяется.

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