原文: Python range() Function Example

在这篇文章中,你将通过一些代码实例学习如何在 Python 中使用 range() 函数。

Python 中的 range() 函数是什么?range() 函数语法详解

Python 内置的 range() 函数主要在处理 for 循环时使用——你可以用它来循环某些代码块指定次数。

range() 函数接受三个参数——一个是必需的,两个是可选的。

默认情况下,range() 函数的语法就像下面这样:

range(stop)

stop 参数是必需的

range() 函数返回一个从 0 开始、增量为 1、以你指定的 stop 为结束值的数字序列(不包括结束值)。

但是如果你想遍历你指定的两个数字的范围,而不想从 0 开始计数,怎么办?

你可以传递第二个可选的起始值,start,来指定起始数字。语法是这样的:

range(start, stop)

这种语法在起始值(包括)和结束值(不包括)的基础上生成一个数字序列,以 1 为增量递增。

最后,如果你不希望默认的增量是 1,你可以指定第三个可选的参数,即步长 step。语法是这样的:

range(start, stop, step)

这种语法产生一个数字序列,从 start(包括)开始计数,并根据 step 递增,直到到达 stop(不包括)。

如何使用只有 stop 参数的 range() 函数

当在 range() 中只使用 stop 参数时,计数从 0 开始,按 1 递增,当达到你指定的 stop 值时计数停止。

请记住,你指定的结束值并不包括在内!

如果你指定的 stop 参数是 5,那么范围包括 0-4,而不是 0-5——计数将停止在 4 而不是 5

让我们看看下面的例子:

for num in range(5):
    print(num)
    
# output 

# 0
# 1
# 2
# 3
# 4

在这个例子中,我指定了一个 range(5)

该函数从 0 开始计数,每次迭代都递增 1,最后结束于 4

如何使用带有 start 和 stop 参数的 range() 函数

如果你想有一个两个数字的范围,你可以使用两个参数——startstop。请记住,起始值是包括在内的,而结束值则不是。

如果你想要一个从 5(含)到 10(含)的数值范围,你可以这样写一个 range(5,11)

for num in range(5,11):
  print(num)
  
# output

# 5
# 6
# 7
# 8
# 9
# 10

你也可以向 range() 传递负的整数值:

for num in range(-5, 1):
  print(num)

# output

# -5
# -4
# -3
# -2
# -1
# 0

这里需要注意的是,你不能向 range() 传递浮点值。

在这个例子中,当我传递两个浮点数作为参数时,会出现错误:

for num in range(5.2, 4.3):
  print(num)

# output

# Traceback (most recent call last):
#  File "main.py", line 1, in <module>
#    for num in range(5.2, 4.3):
# TypeError: 'float' object cannot be interpreted as an integer

你可以传递负整数或正整数作为 startstop 参数。

如何使用带有 start、stop 和 step 参数的 range() 函数

默认情况下,增量值是 1,并且没有指定。也就是说,你可以通过向 range() 函数传递一个 step 参数来改变它。

让我们看看下面的例子:

for num in range(10,21,2):
  print(num)
  
# output

# 10
# 12
# 14
# 16
# 18
# 20

在上面的例子中,我生成了一个从 1020 的数字序列,并将递增量设置为 2,我通过指定 step 值为 2 来实现这一点。

需要注意的是,step 可以是一个负数或正数,但不能是 0

下面是你如何生成一个带有负数 step 参数的范围:

for num in range(20, 11, -2):
  print(num)

# output

# 20
# 18
# 16
# 14
# 12

上面的代码生成了一个反向的数字序列。

再看看当 step0 时发生了什么:

for num in range(10, 21 0):
  print(num)

# output

#  File "main.py", line 1
#    for num in range(10, 21 0):
                            ^
# SyntaxError: invalid syntax

如何使用 range() 函数创建一个数字列表

你可以通过将 range() 函数作为参数传递给 list() 构造函数来创建一个数字列表,就像这样:

my_numbers_list = list(range(5))

print(my_numbers_list)

# output

# [0, 1, 2, 3, 4]

在上面的例子中,我创建了一个从 04 的数字列表。

如何在 Python 中使用 len() 函数和 range()

假设你有一个项目的列表,想根据列表的长度对这些项目做一些处理。

为此,你可以使用 range() 并将列表的长度作为参数传给函数。

要计算一个列表的长度,可以使用 len() 函数。

programming_languages = ["Python", "JavaScript", "Java", "C++"]

programming_languages_length = len(programming_languages)

for languages in range(programming_languages_length):
  print("Hello World")
  
# output

# Hello World
# Hello World
# Hello World
# Hello World

总结

你现在知道如何在 Python 中使用 range() 函数了。

要学习更多关于 Python 的知识,请查看 freeCodeCamp 的 Python 入门课程

感谢阅读,happy coding!