String 反向练习(我的课程,部分“熟能生巧”15/15)

String 反向练习(我的课程,部分“熟能生巧”15/15),string,python-2.7,range,String,Python 2.7,Range,该任务的运行方式如下: 定义一个名为reverse的函数,该函数接受字符串文本并以相反的方式返回该字符串。您不能使用reversed或[:-1]来帮助您完成此操作 我的代码工作正常,但我想了解一个细节。谢谢大家 def reverse (text): result = '' for i in range (len(text)-1,-1,-1): result += text[i] return result 关键是,我最初在第三行中为范围内的I(len(

该任务的运行方式如下: 定义一个名为reverse的函数,该函数接受字符串文本并以相反的方式返回该字符串。您不能使用reversed或[:-1]来帮助您完成此操作

我的代码工作正常,但我想了解一个细节。谢谢大家

def reverse (text):
    result = ''
    for i in range (len(text)-1,-1,-1):
        result += text[i]
    return result
关键是,我最初在第三行
中为范围内的I(len(text)-1,0,-1)编写了代码:
,但程序返回了'!不要用“代替”!不。所以我改成了
(len(text)-1,-1,-1)
,没问题。
但为什么

从范围中省略端点

>>> range(2,5)
[2, 3, 4]

要获取第0个元素,需要
-1

范围中省略端点

>>> range(2,5)
[2, 3, 4]
要获得第0个元素,您需要
-1

,因为文本(Python!)的长度为7,列表以零为基础(从0开始),并且for循环在减少,所以您需要-1

字符串“Python!”是7个字符。范围与最终数字互斥,因此范围占6、5、4、3、2、1、0

长度-1=6,范围为6到-1,其中-1是数字0-6的独占帐户。因为列表是基于0的,所以它占全部。使用零作为范围的第二个参数,只得到数字6、5、4、3、2、1,这并不能解释整个单词

例如:

单词“Stack”有5个字母。 一旦它成为一个列表,它就会占用索引0、1、2、3、4。 您正在遍历整个单词,因此需要访问第0个元素。为此,范围必须设置为-1独占

对于您的循环:

>>> range(6, -1, -1)
[6, 5, 4, 3, 2, 1, 0]
然后,当您通过以下操作访问它时:

text = "Python!"
for i in range(len(text)-1, -1, -1):
    print(text[i])
text[i]
访问所有单个字符并将其向后打印。

由于文本(Python!)的长度为7,列表以零为基础(从0开始),并且for循环在减少,因此需要使用-1

字符串“Python!”是7个字符。范围与最终数字互斥,因此范围占6、5、4、3、2、1、0

长度-1=6,范围为6到-1,其中-1是数字0-6的独占帐户。因为列表是基于0的,所以它占全部。使用零作为范围的第二个参数,只得到数字6、5、4、3、2、1,这并不能解释整个单词

例如:

单词“Stack”有5个字母。 一旦它成为一个列表,它就会占用索引0、1、2、3、4。 您正在遍历整个单词,因此需要访问第0个元素。为此,范围必须设置为-1独占

对于您的循环:

>>> range(6, -1, -1)
[6, 5, 4, 3, 2, 1, 0]
然后,当您通过以下操作访问它时:

text = "Python!"
for i in range(len(text)-1, -1, -1):
    print(text[i])
text[i]
访问所有单个字符并向后打印它们