任务运行如下: 定义一个名为reverse的函数,它接受一个字符串textand以反向返回该字符串。你可能不会使用reverse或[:: - 1]来帮助你。
我的代码可以正常工作,但我想了解一个细节。 Tks to all。
def reverse (text):
result = ''
for i in range (len(text)-1,-1,-1):
result += text[i]
return result
关键在于我最初是在第3行写的for i in range (len(text)-1,0,-1):
但是该程序又回来了#no!'而不是'!nohtyP'。所以我改为(len(text)-1,-1,-1)
嗯它没关系。
但是为什么?!
答案 0 :(得分:2)
范围中省略了终点。
>>> range(2,5)
[2, 3, 4]
要获取第0个元素,您需要-1
。
答案 1 :(得分:0)
因为文本(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 exclusive。
对于你的循环:
>>> 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]
访问所有单个字符并向后打印。