使用while循环打印列表中的单词,直到打印出长度为4的单词

时间:2016-09-16 00:58:48

标签: python

我正在尝试使用while循环来打印文本文件中列表中的单词。一旦它达到一个4个字符长的单词,我需要循环停止。使用我当前的代码,我得到一个无限循环。

wordsFile = open("words.txt", 'r')
words = wordsFile.read()
wordsFile.close()
wordList = words.split()

# While loop displays names based on length of words in list

print("\nSelected words are:")
while words in wordList:
if len(words) != 4:
    print(words)

样本所需输出

选定的单词是:

  • 阿巴特

  • 强辩

  • 传播

  • 否认地

  • 异常

  • 凝结

  • 溶出

4 个答案:

答案 0 :(得分:1)

如果您的字长等于4,请添加break。此外,它不是while words in wordList:,而是for words in wordList:。使用While expression语句,它将迭代到该表达式become False,但words in wordList将始终为True。所以你会得到一个无限循环。

if len(words)==4:
    break

您将获得以下内容:

for word in wordList:
    if len(word)==4:
        break
    print(words)

什么是break声明?它会阻止你的循环执行循环后的下一行。它也适用于for循环

答案 1 :(得分:1)

你的大部分代码都是关闭但关闭的,似乎你不太了解循环和条件的工作原理。

尝试以下方法:

for word in words:
    # will not print the first word of length 4 which breaks the loop
    if len(word) == 4:
        break
    print(word)

答案 2 :(得分:0)

您是否尝试将文本文件中的所有单词转换为字符串LIST,然后读取字符串并打印所有包含多于或少于四个字母的单词?如果是这样,您将需要遍历文件并将每个单词附加到单词列表中。

如果没有,我建议使用continue而不是break

for word in wordList:
    if len(word) == 4:
        continue
    else:
        print(word)

答案 3 :(得分:0)

召回= 0

wordList中的单词

while recall == 0:
    if len(word) != 4:
        print(word)
        break
    else:
        recall = 1

从火星(在这个世界之外)向Leon Tietz说,Y'所有IT 210的孩子们!