Python分割奇数长度字符串时如何让后半部分不含中间字符
问题原因
- Python的序列(包括字符串)切片采用左闭右开的取值规则:
[起始索引:结束索引]的取值范围包含起始索引位置的元素,不包含结束索引位置的元素,缺省结束索引时会一直取到序列末尾。 - 你代码中
middle是中间字符对应的正向下标,str[middle : ]会从中间字符的位置开始截取到末尾,所以后半段自然包含了中间字符。
修复方案
仅需要将后半段的切片起始位置调整为middle + 1即可,修改后完整代码如下:
str = input("Enter an odd length string: ") length = len(str) middle = length // 2 half1 = str[ : middle] half2 = str[middle + 1 : ] print("Middle character:",str[middle]) print("First half:",half1) print("Second half:",half2)
效果验证
用你示例的输入Fortune favors the bold测试,修改后输出的后半段为rs the bold,符合不包含中间字符的预期。
内容的提问来源于stack exchange,提问作者SupaDupa23
相关产品推荐
相关产品推荐

