qq_33957313 2021-12-18 18:33 采纳率: 100%
浏览 148
已结题

python中怎么统计单词个数和提取每个单词中的首字符?

图中就是 number_of_words(ls):
要统计 fist_letter(ls) 要提取首字母完整程序

img


然后完整的代码是这个:


```python
import re
import string


def read_file(file):                              #打开本地的一个txt文件  里面是一篇英语文章
    """ """
    with open(file,'r',encoding='utf-8') as f:
        text =f.read()
    return text

def classify_char(txt):                   #这里是统计大写、小写、数字、空格和其他字符
    upper=0
    lower=0
    digit=0
    space=0
    other=0
    for ch in txt:
        if ch.isupper():
            upper = upper+1
        elif ch.islower():
            lower = lower + 1
        elif ch.isdigit():
            digit=digit+1
        elif ch.isspace():
            space=space+1
        else:
            other=other+1
    return upper,lower,digit,space,other

def word_list(txt):                                                       #这里将字符中的符号代替空格 
    for ch in '!"#$%&()*+,-.:;<=>?@[\\]^_‘{|}~/':
        txt.replace(ch,' ')
    ls=txt.split()
    return ls

def number_of_words(ls):      #这里是统计字符单词数量

def first_letter(ls):                  #这里是要提取字符的首字符

if __name__ == '__main__':                                                #输出
    filename='essay1_The Language of Music.txt'
    text=read_file(filename)
    classify= classify_char(text)
    word_conuts = number_of_words(word_list)
    print('大写字母{}个,小写字母{}个,空格{}个,其他{}个'.format(*classify))
    print(f'共有{word_conuts}单词')
    new_str=first_letter(word_list())
    print(len(new_str))
    print(f'拼接的字符串是{new_str}')

```

  • 写回答

1条回答 默认 最新

  • 关注

    用正则表达式[a-zA-Z]+ 统计单词个数
    你题目的解答代码如下:

    import re
    import string
    
    def read_file(file):                              #打开本地的一个txt文件  里面是一篇英语文章
        """ """
        with open(file,'r',encoding='utf-8') as f:
            text =f.read()
        return text
    def classify_char(txt):                   #这里是统计大写、小写、数字、空格和其他字符
        upper=0
        lower=0
        digit=0
        space=0
        other=0
        for ch in txt:
            if ch.isupper():
                upper = upper+1
            elif ch.islower():
                lower = lower + 1
            elif ch.isdigit():
                digit=digit+1
            elif ch.isspace():
                space=space+1
            else:
                other=other+1
        return upper,lower,digit,space,other
    def word_list(txt):                                                       #这里将字符中的符号代替空格
        ls=re.findall(r'[a-zA-Z]+',txt)
        return ls
    def number_of_words(ls):      #这里是统计字符单词数量
        return len(ls)
    def first_letter(ls):                  #这里是要提取字符的首字符
        return [x[0] for x in ls]
    if __name__ == '__main__':                                                #输出
        filename='essay1_The Language of Music.txt'
        text=read_file(filename)
        classify= classify_char(text)
        word_conuts = number_of_words(word_list(text))
        print('大写字母{}个,小写字母{}个,空格{}个,其他{}个'.format(*classify))
        print(f'共有{word_conuts}单词')
        new_str=first_letter(word_list(text))
        print(len(new_str))
        print(f'拼接的字符串是{new_str}')
    

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月26日
  • 已采纳回答 12月18日
  • 创建了问题 12月18日

悬赏问题

  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题
  • ¥30 酬劳2w元求合作写文章
  • ¥15 在现有系统基础上增加功能