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

Python字符串处理代码调试:奇偶转换后子串截取偏移问题

问题分析与修复

问题根源

你的代码在处理偶数长度字符串时,修改字符串后没有更新长度变量,依然使用原字符串的长度n计算切片位置,导致截取的子串偏移。

比如原字符串长度为偶数n,处理后字符串长度变为n±1(奇数),但你还是用n//2来计算中间位置,这和处理后字符串的实际中间位置不符,自然会偏移一位。

修复后的代码

string = str(input())
n = len(string)
if n % 2 != 0:
    m = n
else:
    if string[-1] == '.':
        string = string[:-1]
    else:
        string += '.'
    m = len(string)  # 更新为处理后的字符串长度

# 以处理后的奇数长度字符串的中间位置为中心截取三个字符
print(string[m//2 - 1 : m//2 + 2])

关键修改点

  1. 在处理完偶数长度的字符串后,新增m = len(string)获取处理后的实际长度
  2. 统一使用m(处理后的奇数长度)计算切片的起始和结束位置,确保以中间字符为中心截取三个连续字符

测试示例

  • 输入偶数长度字符串"hell"(长度4):处理后变成"hell."(长度5),截取结果为"ell",符合需求
  • 输入偶数长度字符串"hello."(长度6):处理后变成"hello"(长度5),截取结果为"ell",符合要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 04:25:01