对于Python中的循环问题

Eng*_*rad 0 python loops

我是编程新手.我希望能够为我的列表中的两个条目运行此程序,但是不能理解编程以使其正确.这个网站的成员已帮助我做到这一点,该程序适用于一组标签.我想让它运行所以我可以一次搜索多个作者.输出结果是它只收集"Shakes"的所有信息.然后停下来.我只是不知道如何格式化循环以使其正确.

这是我正在使用的代码:

authorList = ['Shakes.','Scott']

with open('/Users/Adam/Desktop/Poetrylist.txt','w') as output_file:
with open('/Users/Adam/Desktop/2e.txt','r') as open_file:
        the_whole_file = open_file.read()
        start_position = 0
        for x in authorList:
            while True:
               start_position = the_whole_file.find('<A>'+x+'</A>', start_position)
               if start_position < 0:
                   break
               end_position = the_whole_file.find('</W>', start_position)
               output_file.write(the_whole_file[start_position:end_position+4])
               output_file.write("\n")    
               start_position = end_position + 4
Run Code Online (Sandbox Code Playgroud)

我确信这是一个非常简单的问题,但我正在尝试自学python并且它的进展非常缓慢.

cdh*_*wie 5

我想这是因为你没有重置start_position; Python中的变量的范围限定在它们的封闭函数或类或模块中,但不限于它们的封闭循环.所以尝试添加这一行:

for x in authorList:
    start_position = 0   # Add this
    while True:
Run Code Online (Sandbox Code Playgroud)