为什么这不是一个无限循环?

2024-10-03 15:33:31 发布

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

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

numList = [1]

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

file.close()

我目前正在编写一个大学作业,我不知道如何使这段代码成为一个无限循环。似乎当对textfile进行一次迭代时,outer for循环就结束了。你知道吗

我期望这段代码无限期地运行,因为它在一个列表上迭代,这个列表每次迭代都在增加。你知道吗

实际上,这与我在实际代码中处理的场景并不完全相同,但它完美地恢复了我所遇到的问题。我需要外部for循环不会以内部循环的一次迭代结束。非常感谢!你知道吗


Tags: 代码in列表forclose作业lineopen
3条回答

文件在第一次迭代后结束。如果你想把它找出来,你需要再次读取文件或者遍历一个列表

# 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()

我希望反例能解释这一点。你知道吗

你在附加一个列表,而不是文件。所以您的原始文件(您正在迭代的内容)永远不会被更改。你知道吗

对于无限循环,请使用while循环:

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上迭代

相关问题 更多 >