第二行【0:3:-1】都代表什么意思?

img


这些数字和冒号都代表什么?能否帮忙梳理一下这些用法 而且为什么最后并没有输出呀

这是 Python 的切片索引语法:
切片索引语法最多能有 3 个参数,每个参数间用 冒号 相隔:

# 以下都是合法的切片索引语法
a[1]       # 1 个参数
a[2:4]     # 2 个参数
a[3:10:2]  # 3 个参数
  1. 1 个参数。表示获取指定位置的一个元素,索引从 0 开始计数:

    a = [1, 2, 3, 4]
    a[0]  # 1
    a[2]  # 3
    
  2. 2 个参数。表示截取某一段的元素,包含第一个索引,不包含第二个索引:

    a = [1, 2, 3, 4, 5]
    a[0:2]  # 从 a[0](包含) 截取到 a[2](不包含),结果为 [1, 2]
    a[2:3]  # 从 a[2](包含) 截取到 a[3](不包含),结果为 [3]
    
  3. 3 个参数。在 2 个参数的基础上,指定步长,步长可以为负:
    ```python
    a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    a[0:10:2] # 在 a[0:10] 的基础上,索引递增 2,结果为 [1, 3, 5, 7, 9]

你的代码中,第一个索引小于第二个索引,又使用了负步长,所以没有输出(应该是 s[3:0:-1])