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

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 宇视监控服务器无法登录
  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥15 DruidDataSource一直closing
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据