Skip to main content
 首页 » 编程设计

python之for循环在while循环中

2025年05月04日18Free-Thinker

如何在 while 循环中使用 for 循环? 这是我的代码:

def avoids(word,forbidden): 
    for fl in forbidden: 
        for letter in word: 
            if letter == fl: 
                return False 
    return True 
 
fin= open('words.txt') 
u=97 
v=97 
w=97 
x=97 
y=97 
minim=100 
while u <= 122: 
    while v <= 122: 
        while w <= 122: 
            while x <= 122: 
                while y <= 122: 
                    count=0 
                    for line in fin: 
                        word = line.strip() 
                        if avoids(word,chr(u)+chr(v)+chr(w)+chr(x)+chr(y)): 
                            #print(word) 
                            count+=1 
                            #print((100/113809)*count) 
                    if (100/113809)*count<minim: 
                        print(count) 
                        minim=(100/113809)*count 
                        print(minim,chr(u)+chr(v)+chr(w)+chr(x)+chr(y)) 
                    y+=1 
                y=97 
                x+=1 
            x=97 
            w+=1 
        w=97 
        v+=1 
    v=97 
    u+=1 

它只执行一次 for 循环。 我可以将 fin= open('words.txt') 放在最新的 while 语句中,但程序变得非常慢并且几乎无法使用。 我能做什么?(不是我不想使用列表等)

请您参考如下方法:

它只执行一次 for 循环的原因是您在 for 循环的第一次迭代期间耗尽了为“words.txt”文件创建的缓冲区。

如果您想多次浏览该文件中的单词,则每次都需要重新打开它(如您所述,这会产生大量开销)。

或者,将该文件读入列表,然后运行该列表的 while/for 循环结构。

即.

fin= open('words.txt') 
wordList = fin.readlines() 
u=97 
v=97 
... 
for line in wordList 
...