首页 > 编程语言 >利用Python实现分析给定文本字符串中的字符统计信息

利用Python实现分析给定文本字符串中的字符统计信息

时间:2024-07-12 13:51:39浏览次数:11  
标签:count Python text self analyzer char 给定 print 文本

设计一个名为 TextAnalyzer 的 Python 类,该类用于分析给定文本字符串中的字符统计信息。

类应具有以下功能:

  • 初始化:类初始化时接受一个字符串参数 text,并将其存储为类的属性。
  • 字符计数:实现一个方法 count_characters(),返回一个字典,其中键为文本中出现的不同字符(包括空格和标点符号),值为该字符在文本中出现的次数。
  • 单词计数:实现一个方法 count_words(),返回文本中单词的总数。假设单词由空格分隔。
  • 最常用字符:实现一个方法 most_common_char(),返回文本中出现次数最多的字符及其出现次数。如果有多个字符并列最常用,返回其中任意一个。
  • 句子计数:实现一个方法 count_sentences(),基于句号(.)、问号(?)、感叹号(!)来统计文本中句子的数量。 

运行示例

text = "Hello, world! This is a test. Another sentence? Yes, indeed!"
analyzer = TextAnalyzer(text)
print(analyzer.count_characters())  # 应输出字符计数字典
print(analyzer.count_words())      # 应输出单词数量,例如:6
print(analyzer.most_common_char()) # 可能输出:{' ': 4, 's': 3} 表示空格和's'都是最常见的字符之一
print(analyzer.count_sentences())   # 应输出句子数量,例如:3

参考答案

class TextAnalyzer:
    def __init__(self, text):
        self.text = text

    def count_characters(self):
        char_count = {}
        for char in self.text:
            char_count[char] = char_count.get(char, 0) + 1
        return char_count

    def count_words(self):
        words = self.text.split()
        return len(words)

    def most_common_char(self):
        char_freq = self.count_characters()
        max_count = max(char_freq.values())
        common_chars = [char for char, freq in char_freq.items() if freq == max_count]
        return common_chars[0], max_count

    def count_sentences(self):
        sentence_enders = ['.', '?', '!']
        sentences = [sent + char for char in sentence_enders for sent in self.text.split(char)]
        return len(sentences) - 1  # 减1是因为最后一个句子后面没有分隔符

# 示例使用
text = "Hello, world! This is a test. Another sentence? Yes, indeed!"
analyzer = TextAnalyzer(text)
print(analyzer.count_characters())
print(analyzer.count_words())
print(analyzer.most_common_char())
print(analyzer.count_sentences())

 

标签:count,Python,text,self,analyzer,char,给定,print,文本
From: https://www.cnblogs.com/liuyangjava/p/18298234

相关文章

  • Python批量下载微信公众号内的文字和图片
    mportctypesimportsubprocessimportsysimportosimportrandomimportreimportuuidimportshutilimportdatetimeimportrequestsimportsecretsfrombs4importBeautifulSoupfromqiniuimportAuth,put_file,BucketManager,urlsafe_base64_encodeimpor......
  • Python爬虫抓取笔趣阁小说(含源码)
    学习一下思路:1.我们进入需要爬取到的小说界面,右键开发者工具,选中元素显示,然后找到需要爬取的小说章节模块在代码中的位置。将a标签中的文本内容复制,然后ctrl+u打开源代码ctrl+f将刚刚的文本内容复制查找是否有这个模块。(比较爽的是,刚好这里有,可以不需要去查看网络请求......
  • python编程实例 计算输入内容中数字、字母、空格、其它字符的数量 两种方式实现
    第一种方式为通过python自带函数实现第二种方式为通过ascii码实现点击查看代码#字符串构成,统计出字符串中#空格英文字符数字其它字符的数量'''使用自带函数a=input("请输入:")kong=0ying=0shu=0qita=0foriinrange(len(a)):if(a[i].isspace()):kong......
  • 【PYTHON】运行环境配置之安装tar.gz压缩包
    我们经常会遇到从PYPI网站下载的安装文件没有whl格式,这时我们需要安装tar.gz格式的安装文件。比如图1所示的文件类型,这时我们需要先将该压缩包解压缩得到图2。图1图2接着,我们通过win+r,再输入cmd的方式得到运行窗口如图3。图3接着,我们利用pipinstall+解压后文件夹路......
  • python爬虫案例——5行代码爬取音乐资源
    都2024年了,不会还有人在花钱用VIP下载音乐吧~每天一个小妙招,教你5行代码轻松白嫖资源小白须知电脑需配备python解释器、安装一款编程软件,例如VisualStudioCode、pycharm等VisualStudioCode官网:https://code.visualstudio.com/pycharm社区版:https://www.jetbrains.com......
  • python-小理与他的画(赛氪OJ)
    [题目描述]小理是个画家,他希望有一天他的画能让心仪的她看到。只是后来她有了他,他却只有他的画,他望着他的画,默默的发呆。可惜做题的你,画不出他画的她,所以,我们只好画点简单的画,或许有一天,你就会遇到画里她/他吗?因此我们规定画画的内容:输入一个正整数 n(n为奇数),输出高度为 n......
  • “好物”推荐+Xshell连接实例+使用Conda创建独立的Python环境
    目录主题:好易智算平台推荐+RTX4090DGPU实例租用演示+安装配置torch1.9.1+cuda11.1.1环境引言:算力的新时代平台介绍:技术与信任的结晶使用案例:实际使用展示创建实例开始使用连接实例(下文演示使用Xshell连接,后续传文件也有配套的sftp可以使用)sftp传文件查看服务器配置,使用C......
  • 【Python】【银河麒麟】在命令行中将Python模块安装在指定项目的环境中
    银河麒麟的Pycharm有时候无法使用镜像源安装Python模块,这里记录一下在终端安装模块到指定项目环境的过程:1.找到项目的venu/bin文件夹,里面应该包含activate文件 2.在venu/bin文件夹下打开终端(命令行),或者打开终端后将路径切换到 venu/bin下;3.在命令行输入pipinstal......
  • 一类账户认证API在Java、Python、PHP中的使用教程
    随着金融科技的快速发展,一类账户认证在金融服务中扮演着越来越重要的角色。对于个人和企业而言,拥有一个高级别的账户不仅能提高交易效率,还能享受到更多优惠和服务。然而,这也带来了账户安全的挑战和风险。为了确保账户的真实性和合法性,一类账户认证应运而生。它通过对用户......
  • Python实战Elasticsearch的核心技巧详解
    概要Elasticsearch是一个分布式的搜索引擎,可以用于全文搜索、结构化搜索、分析等多种场景。它基于Lucene构建,提供了强大的搜索功能和数据分析能力。本文将详细介绍如何使用Python实现与Elasticsearch的交互,包括安装、配置、基本操作和实际应用示例。安装和配置安装Elast......