import string mafo = input() for i in string.punctuation: mafo = mafo.replace(i, " ") mafoi = mafo.split() print(mafoi)代码能实现输入一个英文句子,以回车符结束,单词间以空格分隔,标点符号后跟至少一个空格,统计并输出单词的个数(仅统计单词,数字按单词计,不计算标点符号,重复单词出现几次就统计几次)。功能吗
时间: 2023-06-16 11:03:05 浏览: 212
以下是代码实现:
```python
import string
mafo = input()
for i in string.punctuation:
mafo = mafo.replace(i, " ")
mafoi = mafo.split()
count = {}
for word in mafoi:
if word in count:
count[word] += 1
else:
count[word] = 1
print(len(count))
```
解释:
首先,通过 `input()` 函数获取用户输入的句子。
然后,使用 `string.punctuation` 模块获取所有的标点符号,并将其替换为空格。这样,所有标点符号后面的空格都会被替换为一个空格,方便后面的分割操作。
使用 `split()` 函数将句子按空格分割,得到单词列表 `mafoi`。
接下来,使用一个字典 `count` 来统计每个单词出现的次数。遍历单词列表 `mafoi`,如果单词已经在字典 `count` 中,则将其出现次数加 1;否则,在字典中新增一个键值对,键为单词,值为 1。
最后,输出字典 `count` 的长度,即为单词的个数。注意,字典 `count` 中的每个键都是不重复的,因此字典的长度就是单词的个数。
阅读全文