此问题已在此处有答案:
How to read a file line-by-line into a list?(28回答)
6小时前关闭
我正在做艾伦唐尼的书中的一个练习(Think Python,第84页),其中说“编写一个名为has_no_e的函数,如果给定的单词中没有字母“e”,则返回True。”作者说这些练习的共同模式是:
def has_no_e(word):
for letter in word:
if letter == 'e':
return False
return True
所以我相信这就是答案。但是你如何让这个函数调用单词的words.txt列表呢?我试着这样做,但肯定有什么地方出错了,因为我的代码什么都不做。当我运行它时,我看到一个空行。我想要的是让这个函数从单词中提取单词。txt文件,并告诉我,如果每个是真或假,这取决于是否存在'e'。
def has_no_e(list):
fin = open(list)
word = fin.readline()
for letter in word:
if letter == 'e':
return False
return True
has_no_e("words.txt")
谢谢大家。
1条答案
按热度按时间xam8gpfp1#
如果你想要一个逐行的结果列表,而不是在阅读第一行后立即返回,你需要继续读取更多的行,并将结果累积到某种数据结构中(例如,列表)。
你提到的更直接的问题是
我的代码什么都不做。当我运行它时,我看到一个空行。
您没有包含任何代码来显示调用
has_no_e
的结果。例如,您可以将has_no_e
的结果赋给一个变量,然后使用print
语句将该变量打印到控制台。然后您就会看到函数调用的结果。