Python如何计算段落中单句包含的最大单词数量
实现思路与修正代码
原有代码的核心问题
- 语法错误:
else后不能附带判断条件,多条件分支需要使用elif - 拆分逻辑错误:仅按单一分隔符拆分、仅取第一个句子计算,没有遍历所有句子
- 统计逻辑错误:直接返回字符串长度(统计的是字符数),没有拆分单词统计
- 笔误:最后一个结束符
!的分支,错误调用了split("?")
正确实现步骤
- 一次性按三种句子结束符
.!?拆分所有句子,过滤掉拆分后产生的空字符串(比如段落末尾的结束符会产生空内容) - 遍历每个句子,按空格拆分单词,过滤掉连续空格产生的空值后统计单词数量
- 取所有句子的单词数最大值作为返回结果
可运行的修正代码
正则实现(逻辑更简洁)
import re S = input("Enter a paragraph") def getMaxNum(S): # 按.!?拆分所有句子,re.split支持多分隔符匹配 sentences = re.split(r'[.!?]', S) max_count = 0 for sent in sentences: # 去除句子前后空格,按空格拆分单词,过滤空值 words = [w for w in sent.strip().split() if w] current_count = len(words) if current_count > max_count: max_count = current_count return max_count print(getMaxNum(S))
无依赖实现(不引入第三方模块)
S = input("Enter a paragraph") def getMaxNum(S): # 先把所有结束符替换成统一的分隔符,再拆分 processed = S.replace('?', '.').replace('!', '.') sentences = processed.split('.') max_count = 0 for sent in sentences: words = [w for w in sent.strip().split() if w] current_count = len(words) if current_count > max_count: max_count = current_count return max_count print(getMaxNum(S))
测试示例
输入段落:Hello world! How are you today? I am fine.
返回结果:4
内容的提问来源于stack exchange,提问作者Rodragon
相关产品推荐
相关产品推荐

