Python - 无法理解这个反向程序

时间:2014-06-22 18:22:11

标签: python reverse

这是代码,这个程序的主要目标是向后打印消息

message = 'Here is an example'
translated = ''
i = len(message) - 1
while i >= 0:
    translated = translated + message[i]
    i = i - 1
print(translated)

我无法理解的是第3行,消息包含18个字符,但是'i'减去一个,所以它是17,当你运行这个程序时,每个符号都在那里,第5行用i打印出消息(仍然少了1个字符,没有什么遗漏,任何人都可以解释为什么一切都在那里?我知道你只能用2行这样做

message = 'Here is an example'
print(message[::-1])

但我想了解更长的计划。

2 个答案:

答案 0 :(得分:4)

大多数语言的索引都以0开头,因此最后一个字符索引的长度为1

答案 1 :(得分:1)

这是基于1的基于0的难题的实例。

python(和大多数语言)中的列表都是从0开始的。我们以1为基础的方式思考。换句话说,我们从1开始计数。但计算机从0开始计数!

因此,如果我们想要遍历列表,我们需要先从长度中减去一个。长度为3的列表中将包含3个元素,它们的索引将为0到2.如果我们尝试访问索引3处的某些内容,我们将获得超出范围的索引异常。

这有帮助吗?