利用Python实现分析给定文本字符串中的字符统计信息
设计一个名为 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())