📜  python 范围不是从 0 开始 - Python (1)

📅  最后修改于: 2023-12-03 15:04:18.218000             🧑  作者: Mango

Python 范围不是从 0 开始

在大多数编程语言中,数组和列表的索引都是从0开始的。但是在Python中,这个规则不适用于所有情况。

列表和元组的索引

Python中的列表和元组都是从0开始索引的,与大多数编程语言相同。例如,如果我们有一个包含四个元素的列表,我们可以使用以下索引访问每个元素:

my_list = ['apple', 'banana', 'orange', 'peach']
print(my_list[0])  # 输出 'apple'
print(my_list[1])  # 输出 'banana'
print(my_list[2])  # 输出 'orange'
print(my_list[3])  # 输出 'peach'

同样的规则也适用于元组:

my_tuple = ('cat', 'dog', 'bird', 'hamster')
print(my_tuple[0])  # 输出 'cat'
print(my_tuple[1])  # 输出 'dog'
print(my_tuple[2])  # 输出 'bird'
print(my_tuple[3])  # 输出 'hamster'
字符串和字节数组的索引

与列表和元组不同,Python中的字符串和字节数组的索引是从0和-1开始的。这意味着,如果我们有一个由字符串或字节数组组成的序列,我们可以使用以下索引访问每个元素:

my_string = 'hello world'
print(my_string[0])    # 输出 'h'
print(my_string[-1])   # 输出 'd'

my_bytes = b'\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64'
print(my_bytes[0])     # 输出 72 (对应 ASCII 同义词为 'H')
print(my_bytes[-1])    # 输出 100 (对应 ASCII 同义词为 'd')

在这里,-1代表字符串或字节数组中的最后一个元素,而0代表第一个元素。

range函数的索引参数

Python中range()函数是一个常用的函数,用于生成指定范围的数字序列。当我们调用range()函数时,我们可以传入一个开始值、结束值和可选的步长参数。但是,开始值并不总是从0开始。

例如,如果我们想要生成一个从10到19的数字序列,我们可以传入10和20作为起点和终点:

my_range = range(10, 20)
for i in my_range:
    print(i)

这将输出以下内容:

10
11
12
13
14
15
16
17
18
19

在这里,range(10,20) 如同包含从10到19的数字序列。

因此,Python中的规则是:在某些情况下,范围不从0开始。具体来说,在字符串和字节数组中,第一个元素的索引为0,最后一个元素的索引为-1。而对于列表、元组和range函数的产生的序列,索引从0开始。