You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何计算段落中单句包含的最大单词数量

实现思路与修正代码

原有代码的核心问题

  • 语法错误:else 后不能附带判断条件,多条件分支需要使用 elif
  • 拆分逻辑错误:仅按单一分隔符拆分、仅取第一个句子计算,没有遍历所有句子
  • 统计逻辑错误:直接返回字符串长度(统计的是字符数),没有拆分单词统计
  • 笔误:最后一个结束符!的分支,错误调用了split("?")

正确实现步骤

  1. 一次性按三种句子结束符.!?拆分所有句子,过滤掉拆分后产生的空字符串(比如段落末尾的结束符会产生空内容)
  2. 遍历每个句子,按空格拆分单词,过滤掉连续空格产生的空值后统计单词数量
  3. 取所有句子的单词数最大值作为返回结果

可运行的修正代码

正则实现(逻辑更简洁)

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 11:06:02