Python 我制作了一个程序,检查文件中是否有单词,需要一些建议

Python 我制作了一个程序,检查文件中是否有单词,需要一些建议,python,Python,我想打印单词是否出现,以及单词在文件中出现的次数。除了这个词在文件中出现1到0次之外,我无法让它说任何其他的话 这个问题发生在第26行的print(“它出现”+str(wordcount[word])+“times”) 特别是str(wordcount[word])。这个问题可能很简单,但这是我学习python的第一周,所以如果有人有想法,请分享。谢谢 我试着把wordcount[word],word\u计数器。和word\u计数器。 变量word在本地范围内被循环覆盖。因此,循环将覆盖您的输入

我想打印单词是否出现,以及单词在文件中出现的次数。除了这个词在文件中出现1到0次之外,我无法让它说任何其他的话

这个问题发生在第26行的print(“它出现”+str(wordcount[word])+“times”)

特别是str(wordcount[word])。这个问题可能很简单,但这是我学习python的第一周,所以如果有人有想法,请分享。谢谢

我试着把
wordcount[word]
word\u计数器。
word\u计数器。


变量
word
在本地范围内被循环覆盖。因此,循环将覆盖您的输入
word
,最后检查输入文件最后一个单词的计数。将输入字更改为与您在文件中迭代的字不同的变量名。

您可以使用以下代码:

导入集合
文件=打开(“wordfreqtest.txt”、“r”)
如果file.mode==“r”:
contents=file.read().lower()
word=输入(“要检查的单词:”).lower()
次数=0
完成=0
当finish==0时:
如果内容中有单词:
contents=contents[contents.find(word)+len(word):]
次数+=1
其他:
打破
如果时间>0:
打印(“此单词在文件中:))
打印(“显示”+str(次)+“次”)
其他:
打印(“此单词不在文件中”)

由于在输入和for循环中使用相同的名称“word”,因此存在范围界定问题

我建议你这样做:

word = input("Word to check for :")
with open('your_file.txt') as f:
     raw = f.read()
     num_appearences = raw.count(word)
     print(f"The word {word} appears {num_appearences} times in the file")

您正在将用户输入保存在名为
word
的变量中,可能存在重复。但随后在for循环中重复使用相同的变量名,因此丢失了其原始值。当循环结束并打印频率消息时,
word
保留上次for循环迭代中的值。谢谢!我不知道人们会这么快回答:)谢谢你的帮助,但是当我输入代码时,{word}总是变成“fly”,而不是实际的输入。你知道这是怎么发生的吗?我不知道,但我通过为if语句创建另一个名为if_word的变量解决了这个问题。谢谢你的帮助!
word = input("Word to check for :")
with open('your_file.txt') as f:
     raw = f.read()
     num_appearences = raw.count(word)
     print(f"The word {word} appears {num_appearences} times in the file")