【问题描述】在文章撰写中,经常需要统计文本的段落数、单词数、字符数和标点符号数。请编写程序统计英文文本的段落数、单词数、字符数和标点符号数,并输出统计结果。 提示:(1) 统计字符数时不统计空格; (2) 统计英文标点符号时只统计11种 , . ; ' " : - ! ? ( ) (3) 统计段落时,空行不计算 【输入形式】如果若干段英文文本。 【输出形式】依次输出英文文本中的单词数、字符数和标点符号数,用空格分开。 【样例输入】 We need a way to ingest whatever data we have at hand. We somehow need to define the deep learning machine. 【样例输出】2 21 87 2 【样例说明】上述英文中有2个段落,21个单词,87个字符,2个标点符号。
时间: 2024-02-13 10:07:20 浏览: 85
C++统计中英文大小写字母、数字、空格及其他字符个数的方法
以下是 Python 代码实现:
```python
import string
# 统计英文文本的段落数、单词数、字符数和标点符号数
def count_text(text):
# 统计段落数
paragraphs = text.split('\n\n')
num_paragraphs = len(paragraphs)
# 统计单词数
words = text.split()
num_words = len(words)
# 统计字符数
num_chars = len(text.replace(' ', ''))
# 统计标点符号数
punctuation = string.punctuation.replace('_', '')
num_punctuation = sum([text.count(c) for c in punctuation])
return num_paragraphs, num_words, num_chars, num_punctuation
# 读取输入文本
text = input()
# 统计文本信息
num_paragraphs, num_words, num_chars, num_punctuation = count_text(text)
# 输出统计结果
print(num_paragraphs, num_words, num_chars, num_punctuation)
```
程序首先定义了一个 `count_text` 函数来统计文本的段落数、单词数、字符数和标点符号数。在函数中,首先使用 `split` 方法将文本按照两个换行符分割成段落,然后计算段落数;接着使用 `split` 方法将文本按空格分割成单词,然后计算单词数;使用 `replace` 方法将所有空格替换为空字符,然后计算字符数;最后使用 `string.punctuation` 获取所有英文标点符号,然后遍历每个标点符号计算其出现次数,得到标点符号数。
接着程序读取输入文本,调用 `count_text` 函数统计文本信息,最后输出统计结果。
阅读全文