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

Python反转字符串函数中range为何要设置len(string)-1参数?

关于Python反转字符串函数中range参数的解答

首先纠正你对索引计算的误解:

  • Python中字符串等序列类型的索引从0开始计数,以Hello为例,各字符对应索引为:H(0)、e(1)、l(2)、l(3)、o(4),len("Hello")返回值为5,因此len(word)-1计算结果为4,正好对应最后一个字符o的索引,不是你以为的3。

再讲range函数的参数规则:
Python内置range的三个参数含义为 range(起始值, 终止值, 步长),其中终止值对应的数不会被包含在生成的序列里,步长为负数时会从起始值开始倒序生成数值。
你提到的代码里range(len(word)-1, -1, -1)的逻辑是:

  • 起始值设为len(word)-1:从字符串最后一个字符的索引开始遍历
  • 终止值设为-1:遍历到索引为0的时候就停止(因为-1不包含在生成序列里),正好能取到字符串的第一个字符
  • 步长设为-1:每次遍历索引减1,实现从后往前取字符

如果你把起始值和终止值调换,写为range(-1, len(word)-1, -1),由于步长为负,起始值-1小于终止值,range会生成空序列,循环根本不会执行,返回的反转结果是空字符串,完全不符合需求。

内容的提问来源于stack exchange,提问作者J.DF

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 04:54:02