【发布时间】:2020-12-10 14:46:44
【问题描述】:
我还是 python 新手,所以我会尽力解释我做了什么 所以基本上我的代码要求用户输入 然后它导入一个包含单词的文本文件,每个单词都在单独的行中, 然后我的代码将用户输入存储在一个单独的文件中,并且只使用用户输入的第一行 我正在尝试查看我的用户输入的单词是否存在于我导入的预设文本文件中,然后在我的完整代码中我会对这些单词进行一些操作,但它不起作用我尝试使用“==”并使用“ counter" 和 "if x in y...." 并且如果用户输入确实存在于文本文件中,则最后一行的计数打印为零。
user_input=input("Enter: ")
user_input=user_input.upper()
user_input=user_input.split()
print(user_input)
list_words=[]
with open("words.txt","r") as words:
english_words=words.readlines()
for line in english_words:
line=line.upper()
list_words.append(line.rstrip('\n'))
with open("user-message.txt","w+") as file_of_user_inp:
for word in user_input:
file_of_user_inp.write(word +"\n")
with open("user-message.txt","r") as file_of_user_inp:
first_line_user_inp=file_of_user_inp.readline()
user_input=first_line_user_inp
for each_eng_word in list_words:
for each_word in user_input:
if each_word==each_eng_word:
print("it worked")
print(list_words.count((user_input)))
【问题讨论】:
-
不清楚你得到了什么和你期待什么。
-
将用户输入保存到文件似乎是一个不必要的步骤。这是必需的吗?
-
回读用户输入时不会删除换行符。
-
一些加快代码速度的建议。 1)找到匹配项时中断(如果第一个匹配项,您仍然比较剩余的
n-1元素。2)您可以使用list.index()进行搜索或if word in list:进行简化您也可以将它们设为set()和做集合操作。另外,我不确定您是否要遍历外部循环中的大量单词您要确保“words.txt”中的每个单词都在输入中还是相反?跨度> -
first_line_user_inp=file_of_user_inp.readline()生成的字符串末尾将有\n。像使用rstrip('\n')处理 word 文件一样删除它
标签: python file text compare file-comparison