ordcount.py,程序运行后,出现提示: (提交代码和运行结果截图)请输入字符串: 在提示位置输入testa testaa之后,屏幕输出: test 2 a 3

户从盘输入字sprintWordCount(s),向屏幕输出所输入句子的词频统计结果。程序名统一设为wordcount.py,程序运行后,出现提示:
(提交代码和运行结果截图)请输入字符串:
在提示位置输入testa testaa之后,屏幕输出: test 2 a 3

有什么问题,词频统计不是正确的吗

为什么不是
输入testa testaa之后,屏幕输出: testa 2 a 1

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    解决方案:

    1. ordcount.py程序的输入方式为终端输入,可以在命令行中执行该程序,然后输入要统计词频的句子。也可以将要统计词频的句子写入文件中,然后通过命令行参数将文件名传给程序,程序再读取文件内容进行统计。

    在命令行中执行程序:

    python ordcount.py
    请输入要统计词频的句子:Today is Friday.
    

    通过命令行参数传递文件名:

    python ordcount.py filename.txt
    
    1. 输入testa testaa后,程序输出的“test 2 a 3”代表test出现了2次,a出现了3次。

    2. 实现统计句子中每个单词出现的次数可以按照以下步骤:

    3. 将句子按照空格分隔,得到单词列表

    4. 遍历单词列表,建立单词计数的字典
    5. 针对每个单词,在字典中进行增量计数
    6. 最终输出每个单词的计数结果

    具体实现可以参考以下代码:

    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)
    

    该代码可以统计输入的句子中每个单词出现的次数,并输出结果。如果从文件中读取输入,可以直接将文件名作为命令行参数传入,程序会自动读取文件内容进行统计。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^