Python单词计数器,处理空格的文本单词计数

💡 关键要点:单词计数函数

这个练习包括一个核心的单词计数函数和一个扩展的函数,用于计算不带空格的字符和通过标点符号分隔的句子。这是文本准备的一个清晰示例:修剪边缘、按空格拆分、使用len进行计数。我们将涵盖:基本函数的修剪和拆分扩展函数的替换和求和,以及展示输出的示例

1. 基本计数器:修剪和拆分逻辑

word_counter 函数接受文本,进行清理、分割,并返回单词计数:

def word_counter(text: str) -> int:
    """
    计算给定文本中的单词数量。
    """
    # 移除前后空白字符
    clean_text = text.strip()

    # 按空格分割文本(处理单词之间的多个空格)
    words = clean_text.split()

    # 返回单词数量
    return len(words)

strip() 方法用于去除外部空格,split() 方法将多个空格视为一个,从而避免空条目。使用 len 可以得到单词计数。简单处理,将 ” a b ” 视为 2。

2. 扩展计数器:添加字符和句子

word_counter_extended 添加了更多的指标:

def word_counter_extended(text: str) -> tuple:
    """
    计算文本中的单词、字符(不包括空格)和句子数量。

返回一个元组: (单词数, 字符数, 句子数)
    """
    clean_text = text.strip()
    words = clean_text.split()
    words_count = len(words)

    # 计算不包括空格的字符数
    chars_count = len(clean_text.replace(" ", ""))

    # 通过查找 ., !, ? 来计算句子数
sentences_count = sum(clean_text.count(p) for p in ".!?")
return words_count, chars_count, sentences_count
重用修剪/拆分单词。replace(" ", "") 用于去除字符计数中的空格。计算句子的结尾标点符号总数。返回一个元组以支持多输出。

3. 示例用法:使用示例进行测试

在主程序中运行:

sample_text = "  Python   is    awesome!  "
print(sample_text)
print("Words:", word_counter(sample_text))
print("Extended:", word_counter_extended(sample_text))

示例,单词数:3,扩展:(3, 15, 1)。显示处理空格和标点符号。


🎯 总结与反思

这个单词计数器教授文本基础知识,从清理到计数。它让我想起:

  • 空白技巧:去除/拆分管理杂乱。
  • 多指标:轻松扩展字符/句子。
  • 元组返回:整齐地打包多个值。

非常适合日志或论文。更多内容,请处理连字符或引号。

高级替代方案:使用正则表达式计算单词:len(re.findall(r’\w+’, text)),或使用Counter计算频率。你的文本小贴士?评论告诉我们!

更多