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

CS50 Week6 Python可读性项目:连续句末符号的句子计数优化问询

解决CS50 Readability项目中连续句末符号重复计数的问题

你的核心问题是原代码会把连续的句末符号(比如!!!、..)重复计数,导致句子数统计错误。这里提供两种实用的优化方案:

方案一:跟踪前一个字符状态

通过记录上一个字符是否为句末符号,确保只有当当前句末符号是一组连续符号的第一个时,才计数。

优化后的代码:

def countSentences(input):
    counterS = 0
    prev_char = None
    for symbol in input:
        # 仅当当前是句末符号,且前一个不是句末符号时计数
        if symbol in ['.', '!', '?'] and (prev_char not in ['.', '!', '?']):
            counterS += 1
        prev_char = symbol
    return counterS

方案二:使用正则表达式(更简洁)

利用正则匹配连续的句末符号组,直接统计组数就是正确的句子数。

优化后的代码:

import re

def countSentences(input):
    # 匹配一组连续的句末符号,统计匹配到的数量
    sentence_groups = re.findall(r'[.!?]+', input)
    return len(sentence_groups)

两种方案都能处理连续句末符号的情况,比如输入Hello!!! How are you??会被正确统计为2个句子,而不是5个。

内容的提问来源于stack exchange,提问作者Said Dumuzi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 11:01:01