|
发表于 2024-5-7 21:50:20
|
显示全部楼层
回帖奖励 +10 鱼币
在 Python 中,字符串索引和切片非常灵活,可以从正向或反向访问。
这里有几个关键点一定要搞懂(不会的去看小甲鱼Python最新版列表切片课程):
- 负数索引:在 Python 中使用负数索引时,字符串将从后往前进行计数,其中 -1 代表字符串的最后一个字符。所以 "hello"[-1] 返回 'o'。
- 切片操作:"hello"[:-1] 表示从字符串的开头取到倒数第一个字符之前的位置,不包括索引 -1 指定的字符。因此,它返回 "hell"(从第一个字符到倒数第一个字符前的所有字符)。
所以,当你执行 "hello"[-1] + "hello"[:-1] 时:
- "hello"[-1] 得到 'o'
- "hello"[:-1] 得到 'hell'
将这两个结果相加,就得到 'ohell'。
然而,问题中你认为会得到 'olleh' 而不是 'ohell',实际上你可能误解了表达式。
第二个表达式 "hello"[-1]+"hello"[:-1] 的确返回 'ohell'。
至于你提到的 'olleh',这将是通过另一种切片和附加顺序获得的结果。
例如,如果先取 "hello"[::-1] (这将翻转整个字符串,结果为 'olleh'),但这并不是你的表达式所做的。
对于第二个问题,关于为什么 "hello"[-1]+"hello"[:-2] 返回的是 'ohell':
- "hello"[:-2] 表示从字符串的开头取到倒数第二个字符之前的位置,不包括索引 -2 指定的字符。因此,它返回 "hel"。
因此,当执行 "hello"[-1] + "hello"[:-2] 时:
- "hello"[-1] 得到 'o'
- "hello"[:-2] 得到 'hel'
将这两个结果相加,就得到 'ohel'。
这里要注意,你提到返回结果为 'ohell',这可能是一个打字错误。
正确的应该是 'ohel'。
Python课程:
|
|