Python range() 函数

在本教程中,我们将借助示例了解 Python range() 函数。

range()函数返回给定范围之间的数字序列。

例子

# create a sequence of numbers from 0 to 3
numbers = range(4)

# iterating through the sequence of numbers
for i in numbers:
    print(i)

# Output:

# 0
# 1
# 2
# 3

注意: range()返回一个不可变的数字序列,可以很容易地转换为列表、元组、集合等。


range() 的语法

range()函数最多可以接受三个参数:

range(start, stop, step)

startin和step参数range()是可选的。

现在,让我们看看如何range()处理不同数量的参数。


示例 1:带停止参数的 range()

如果我们将单个参数传递给range(),则意味着我们正在传递stop参数。

在这种情况下,range()返回从0到数字(但不包括数字)的数字序列。

# numbers from 0 to 3 (4 is not included)
numbers = range(4)
print(list(numbers))    # [0, 1, 2, 3]

# if 0 or negative number is passed, we get an empty sequence
numbers = range(-4)
print(list(numbers))    # []

示例 2:具有开始和停止参数的 range()

如果我们将两个参数传递给range(),这意味着我们正在传递startstop参数。

在这种情况下,range()返回从start(包括)到stop(不包括)的数字序列。

# numbers from 2 to 4 (5 is not included)
numbers = range(2, 5)
print(list(numbers))    # [2, 3, 4]

# numbers from -2 to 3 (4 is not included)
numbers = range(-2, 4)    
print(list(numbers))    # [-2, -1, 0, 1, 2, 3]

# returns an empty sequence of numbers
numbers = range(4, 2) 
print(list(numbers))    # []

示例 3:具有 Start、Stop 和 Step 参数的 range()

如果我们通过所有三个参数,

  • 第一个参数是start
  • 第二个参数是stop
  • 第三个参数是step

step参数指定序列中两个数字之间的增量。

# numbers from 2 to 10 with increment 3 between numbers
numbers = range(2, 10, 3)
print(list(numbers))    # [2, 5, 8]

# numbers from 4 to -1 with increment of -1
numbers = range(4, -1, -1)    
print(list(numbers))    # [4, 3, 2, 1, 0]

# numbers from 1 to 4 with increment of 1
# range(0, 5, 1) is equivalent to range(5)
numbers = range(0, 5, 1) 
print(list(numbers))    # [0, 1, 2, 3, 4]

注意:的默认值为start0, 的默认值为step1。所以range(0, 5, 1)等价于range(5).


for 循环中的 range()

range()函数通常用于for 循环中,以对循环进行一定次数的迭代。例如,

# iterate the loop 5 times
for i in range(5):
    print(i, 'Hello')
0 Hello
1 Hello
2 Hello
3 Hello
4 Hello