Python For循环以“c”而不是“d”开头

Python For循环以“c”而不是“d”开头,python,for-loop,reverse,Python,For Loop,Reverse,我无法理解这个for循环是如何工作的?所以你的范围是从0到2镜头-1-1,但是[:-1]反转了范围发送的任何内容 所以你的循环从2到1到0 s=abcd 如果要从d开始,请执行以下操作: for 2 > it prints c for 1 > it prints b for 0 > it prints a 这是因为您的范围被转换为range2,-1,-1。您只需从范围镜头-1[:-1]中删除-1即可。类范围开始,停止[,步] range类型表示一个不可变的数字序列,通常用于在

我无法理解这个for循环是如何工作的?

所以你的范围是从0到2镜头-1-1,但是[:-1]反转了范围发送的任何内容

所以你的循环从2到1到0

s=abcd

如果要从d开始,请执行以下操作:

for 2 > it prints c
for 1 > it prints b
for 0 > it prints a

这是因为您的范围被转换为range2,-1,-1。您只需从范围镜头-1[:-1]中删除-1即可。

类范围开始,停止[,步]

range类型表示一个不可变的数字序列,通常用于在for循环中循环特定次数。摘自python文档

要进一步阅读,请转到python文档:

阅读python文档中的上述内容并打印表达式:rangelens-1[:-1]

这将产生:

print(range(len(s)-1)[::-1])
因此,我们的代码是:

range(2, -1, -1)
现在,我希望您了解python在幕后的工作

对于s=abcd,镜头1等于3

范围3生成0、1、2

0,1,2[:-1]结果是2,1,0


因此for循环将为2,1,0中的i打印s[i],从而生成cba。

范围不包括结尾,因此rangelens为0,1,2。请注意,在这种情况下,lens-1So i中的-1是从lens-1开始的,还是从0开始,字符串是颠倒的?不,您应该用rangelens s[::-1]替换rangelens-1[::-1]。我是从0开始还是从lens-1开始的
print(range(len(s)-1)[::-1])
range(2, -1, -1)
   s="abcd" 
   for i in range(2, -1, -1): 
        print(s[i])