这是代码,这个程序的主要目标是向后打印消息
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])
但我想了解更长的计划。
答案 0 :(得分:4)
大多数语言的索引都以0开头,因此最后一个字符索引的长度为1
答案 1 :(得分:1)
这是基于1的基于0的难题的实例。
python(和大多数语言)中的列表都是从0开始的。我们以1为基础的方式思考。换句话说,我们从1开始计数。但计算机从0开始计数!
因此,如果我们想要遍历列表,我们需要先从长度中减去一个。长度为3的列表中将包含3个元素,它们的索引将为0到2.如果我们尝试访问索引3处的某些内容,我们将获得超出范围的索引异常。
这有帮助吗?