2301_80085192 2023-11-28 23:37 采纳率: 0%
浏览 55

pyhton统计英文文件中的单词数

img


为什么一直运行不成功呀,这应该是正确的程序啊,这到底什么意思哦。

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-29 08:43
    关注

    【以下回答由 GPT 生成】

    问题出在word_list函数中的正则表达式替换部分。正则表达式r'[^\w\s]'意味着删除所有的非字母、非数字和非空格字符。但是这个表达式无法删除标点符号,因为标点符号不属于\w范围内的字符。所以需要修改正则表达式的范围。

    以下是修改后的代码:

    import re
    
    def read_file(file):
        """
        接收文件名为参数,读取文件中的数据到字符串中,返回这个字符串
        """
        with open(file, 'r', encoding='utf-8') as text:
            txt = text.read()
        return txt
    
    def word_list(txt):
        """
        接收字符串为参数,用空格替换字符串中所有标点符号,根据空格将字符串切分为列表
        返回值为元素为单词的列表
        """
        txt_nopunc = re.sub(r'[^\w\s]', '', txt)  # 修改正则表达式的范围
        words = txt_nopunc.split()
        return words
    
    def number_of_words(words):
        """
        接收一个以单词为元素的列表为参数,返回列表中单词数量,返回值为整型
        """
        count = 0
        for word in words:
            if word not in ['\n', '\r']:
                count += 1
        return count
    
    filename = 'a.txt'
    text = read_file(filename)
    words_list = word_list(text)
    count = number_of_words(words_list)
    print("共有{}个单词".format(count))
    

    通过修改正则表达式的范围,可以解决程序无法成功运行的问题。然后程序可以正确地输出期望的结果:该文本文件中有23个单词。



    【相关推荐】



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

报告相同问题?

问题事件

  • 创建了问题 11月28日