如何让Python的has_no_e函数调用words.txt中的单词列表?
问题解决
首先,你修改后的has_no_e函数逻辑完全偏离了目标——原函数的作用是判断单个单词是否不含'e',你不该把读取文件的逻辑塞进这个函数里,正确的做法是拆分功能:
- 保留作者给出的正确单单词判断函数:
def has_no_e(word): for letter in word: if letter == 'e': return False return True
- 单独编写读取文件、遍历单词并输出结果的代码:
# 打开words.txt文件,with语句会自动处理文件关闭 with open("words.txt") as fin: # 遍历文件中的每一行(对应每个单词) for line in fin: # 去除单词末尾的换行符,避免干扰判断 word = line.strip() # 调用判断函数,打印每个单词的结果 print(f"{word}: {has_no_e(word)}")
你的代码无输出的原因
- 仅用
readline()读取了文件的第一行,没处理所有单词; - 函数里的
return会直接终止函数运行,根本没机会遍历后续内容; - 全程没有添加
print语句,就算逻辑正确也看不到输出结果。
额外提示
用with语句操作文件比直接open()更安全,它会自动帮你关闭文件;另外必须用strip()去除每行末尾的换行符,否则换行符会被当成单词的一部分参与判断。
内容的提问来源于stack exchange,提问作者romanbouchouiev
相关产品推荐
相关产品推荐

