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

Python循环中字符未拼接到空字符串问题及修复求助

问题与修复方案

原代码与问题

inp='peter piper picked a peck of pickled peppers.'
mod_str=""
for char in range(-1,-(len(inp)+1)):
    mod_str+=inp[char]

print(mod_str)

这段代码运行后输出为空字符串,循环内的字符未拼接到空字符串变量中,如何修复该问题?

预期输出

.sreppep delkcip fo kcep a dekcip repip retep

思路说明

尝试从最右侧的第一个负索引开始,遍历至对应字符串长度的负索引以得到目标输出。由于range函数不包含终止值,因此将长度值加1作为range的终止值(字符串的负索引范围为-1到-(字符串长度))。


问题原因与修复

问题出在range(-1, -(len(inp)+1))的参数上:range默认步长为正1,而起始值-1比终止值-(len(inp)+1)大(例如原字符串长度为41时,终止值是-42,-1 > -42),导致range生成的序列为空,循环根本没执行,所以mod_str始终是空字符串。

修复后的代码

给range添加步长参数-1,让索引从-1开始向左遍历:

inp='peter piper picked a peck of pickled peppers.'
mod_str=""
# 新增步长-1,实现从右到左遍历负索引
for char_idx in range(-1, -(len(inp)+1), -1):
    mod_str += inp[char_idx]

print(mod_str)

更简洁的写法

Python中反转字符串可以直接用切片语法[::-1],无需手动循环,高效又简洁:

inp='peter piper picked a peck of pickled peppers.'
print(inp[::-1])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:13:37