我正在尝试使用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)
样本所需输出
选定的单词是:
阿巴特
强辩
传播
否认地
潜
异常
凝结
溶出
碎
答案 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的孩子们!