户从盘输入字sprintWordCount(s),向屏幕输出所输入句子的词频统计结果。程序名统一设为wordcount.py,程序运行后,出现提示:
(提交代码和运行结果截图)请输入字符串:
在提示位置输入testa testaa之后,屏幕输出: test 2 a 3
有什么问题,词频统计不是正确的吗
为什么不是
输入testa testaa之后,屏幕输出: testa 2 a 1
解决方案:
在命令行中执行程序:
python ordcount.py
请输入要统计词频的句子:Today is Friday.
通过命令行参数传递文件名:
python ordcount.py filename.txt
输入testa testaa后,程序输出的“test 2 a 3”代表test出现了2次,a出现了3次。
实现统计句子中每个单词出现的次数可以按照以下步骤:
将句子按照空格分隔,得到单词列表
具体实现可以参考以下代码:
import sys
if len(sys.argv) > 1:
# 从命令行参数读取输入文件名
filename = sys.argv[1]
with open(filename, 'r') as f:
input_str = f.read().strip()
else:
# 从命令行读取用户输入的句子
input_str = input("请输入要统计词频的句子:")
# 将句子按照空格分隔,得到单词列表
words = input_str.split()
# 建立单词计数的字典
word_count = {}
# 针对每个单词,在字典中进行增量计数
for w in words:
if w in word_count:
word_count[w] += 1
else:
word_count[w] = 1
# 最终输出每个单词的计数结果
for w, count in word_count.items():
print(w, count)
该代码可以统计输入的句子中每个单词出现的次数,并输出结果。如果从文件中读取输入,可以直接将文件名作为命令行参数传入,程序会自动读取文件内容进行统计。