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

使用textwrap模块处理字符串时,句号计数逻辑异常问题求助

问题分析与修复方案

核心问题

你的代码有两个致命问题导致逻辑失效:

  1. 浪费了句号统计结果:你调用了items.count(".")计算每个分片里的句号数量,但完全没把这个数值用到计数逻辑里,分片里有多个句号时根本没被统计。
  2. 计数逻辑错误:当前代码是每个分片遍历一次就递增计数x,而不是每遇到一个句号才递增,这直接导致计数和实际句号数量完全不匹配。

修复后的代码

import textwrap
text = "We are having a long, long long very long sentence here. Just trying to test if it works. We are trying to test. Testing we do. All day. Long."
split_text = textwrap.wrap(text, width=40)
period_count = 0  # 专门统计已遇到的句号数

for item in split_text:
    print(item)
    # 获取当前分片里的句号数量
    current_periods = item.count(".")
    for _ in range(current_periods):
        period_count += 1
        if period_count == 2:
            print("We hit second period")
            period_count = 0  # 重置计数,开始下一轮统计

代码说明

  • 改用period_count专门统计已遇到的句号总数,不再按分片计数。
  • 每个分片先统计句号数量,然后逐个处理:每遇到一个句号就递增计数,当计数到2时输出提示并重置计数。
  • 这种处理方式不管分片里有1个还是多个句号,都能准确统计,6个句号会触发3次提示,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 19:15:28