📜  Python range()函数

📅  最后修改于: 2022-05-13 01:55:17.828000             🧑  作者: Mango

Python range()函数

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

range() 是Python的内置函数。当用户需要执行特定次数的操作时使用它。 Python (3.x) 中的 range() 只是Python (2.x) 中名为 xrange 的函数的重命名版本。 range()函数用于生成数字序列。

Python range()函数for 循环是常用的,因此,在处理任何类型的Python代码时,相同的知识是关键方面。在Python中 range()函数最常见的用途是使用 for 和 while 循环迭代序列类型( Python range() List 、 字符串等)。

Python范围语法

Python range() 基础知识

简单来说,range() 允许用户在给定范围内生成一系列数字。根据用户传递给函数的参数数量,用户可以决定该系列数字的开始和结束位置以及一个数字之间的差异有多大,next.range() 主要采用三个参数。

  • start : 整数,从其开始返回整数序列
  • stop:整数,在此之前要返回整数序列。整数范围在 stop – 1 处结束。
  • step:整数值,确定序列中每个整数之间的增量

Python range() 方法示例

示例 1: Python range() 的演示

Python3
# Python Program to
# show range() basics
 
# printing a number
for i in range(10):
    print(i, end=" ")
print()
 
# using range for iteration
l = [10, 20, 30, 40]
for i in range(len(l)):
    print(l[i], end=" ")
print()
 
# performing sum of natural
# number
sum = 0
for i in range(1, 11):
    sum = sum + i
print("Sum of first 10 natural number :", sum)


Python3
# Python program to
# print whole number
# using range()
 
# printing first 10
# whole number
for i in range(10):
    print(i, end=" ")
print()
 
# printing first 20
# whole number
for i in range(20):
    print(i, end=" ")


Python3
# Python program to
# print natural number
# using range
 
# printing a natural
# number upto 20
for i in range(1, 20):
    print(i, end=" ")
print()
 
# printing a natural
# number from 5 t0 20
for i in range(5, 20):
    print(i, end=" ")


Python3
# Python program to
# print all number
# divisible by 3 and 5
 
# using range to print number
# divisible by 3
for i in range(0, 30, 3):
    print(i, end=" ")
print()
 
# using range to print number
# divisible by 5
for i in range(0, 50, 5):
    print(i, end=" ")


Python3
# Python program to
# increment with
# range()
 
# incremented by 2
for i in range(2, 25, 2):
    print(i, end=" ")
print()
 
# incremented by 4
for i in range(0, 30, 4):
    print(i, end=" ")
print()
 
# incremented by 3
for i in range(15, 25, 3):
    print(i, end=" ")


Python3
# Python program to
# decrement with
# range()
 
# incremented by -2
for i in range(25, 2, -2):
    print(i, end=" ")
print()
 
# incremented by -4
for i in range(30, 1, -4):
    print(i, end=" ")
print()
 
# incremented by -3
for i in range(25, -6, -3):
    print(i, end=" ")


Python3
# Python program to
# show using float
# number in range()
 
# using a float number
for i in range(3.3):
    print(i)
 
# using a float number
for i in range(5.5):
    print(i)


Python3
# Python program to concatenate
# the result of two range functions
from itertools import chain
 
# Using chain method
print("Concatenating the result")
res = chain(range(5), range(10, 20, 2))
 
for i in res:
    print(i, end=" ")


Python3
# Python program to demonstrate
# range function
 
ele = range(10)[0]
print("First element:", ele)
 
ele = range(10)[-1]
print("\nLast element:", ele)
 
ele = range(10)[4]
print("\nFifth element:", ele)


输出 :

0 1 2 3 4 5 6 7 8 9 
10 20 30 40 
Sum of first 10 natural number : 55

您可以通过三种方式调用 range() :

  • range(stop) 接受一个参数。
  • range(start, stop) 有两个参数。
  • range(start, stop, step) 接受三个参数。

范围(停止)

当用户使用一个参数调用 range() 时,用户将获得一系列从 0 开始的数字,包括每个整数,直到但不包括用户提供的作为停止的数字。例如 -

示例 2: Python范围的演示(停止)

Python3

# Python program to
# print whole number
# using range()
 
# printing first 10
# whole number
for i in range(10):
    print(i, end=" ")
print()
 
# printing first 20
# whole number
for i in range(20):
    print(i, end=" ")

输出:

0 1 2 3 4 5 6 7 8 9 
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 

范围(开始,停止)

当用户使用两个参数调用range()时,用户不仅可以决定数字序列在哪里停止,还可以决定它从哪里开始,因此用户不必一直从 0 开始。用户可以使用 range() 使用 range(X, Y) 生成从 X 到 Y 的一系列数字。例如 -arguments

示例 3: Python range(start, stop) 的演示

Python3

# Python program to
# print natural number
# using range
 
# printing a natural
# number upto 20
for i in range(1, 20):
    print(i, end=" ")
print()
 
# printing a natural
# number from 5 t0 20
for i in range(5, 20):
    print(i, end=" ")

输出:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 

范围(开始、停止、步进)

当用户使用三个参数调用 range() 时,用户不仅可以选择一系列数字的开始和停止位置,还可以选择一个数字与下一个数字之间的差异有多大。如果用户没有提供步长,则 range() 将自动表现得好像步长为 1。

示例 4: Python范围的演示(开始、停止、步进)

Python3

# Python program to
# print all number
# divisible by 3 and 5
 
# using range to print number
# divisible by 3
for i in range(0, 30, 3):
    print(i, end=" ")
print()
 
# using range to print number
# divisible by 5
for i in range(0, 50, 5):
    print(i, end=" ")

输出 :

0 3 6 9 12 15 18 21 24 27 
0 5 10 15 20 25 30 35 40 45 

在此示例中,我们打印 0 到 10 之间的偶数,因此我们从 0(start = 0) 选择起点,并在 10(stop = 10) 处停止系列。为了打印偶数,一个数字和下一个数字之间的差必须为 2(步长 = 2),在提供一个步长后,我们得到以下输出(0、2、4、8)。

示例 5:使用正步长随范围递增

如果用户想要递增,则用户需要将步数设为正数。例如:

Python3

# Python program to
# increment with
# range()
 
# incremented by 2
for i in range(2, 25, 2):
    print(i, end=" ")
print()
 
# incremented by 4
for i in range(0, 30, 4):
    print(i, end=" ")
print()
 
# incremented by 3
for i in range(15, 25, 3):
    print(i, end=" ")

输出 :

2 4 6 8 10 12 14 16 18 20 22 24 
0 4 8 12 16 20 24 28 
15 18 21 24 

示例 6: Python range() 向后

如果用户想要递减,那么用户需要将步数设为负数。例如:

Python3

# Python program to
# decrement with
# range()
 
# incremented by -2
for i in range(25, 2, -2):
    print(i, end=" ")
print()
 
# incremented by -4
for i in range(30, 1, -4):
    print(i, end=" ")
print()
 
# incremented by -3
for i in range(25, -6, -3):
    print(i, end=" ")

输出 :

25 23 21 19 17 15 13 11 9 7 5 3 
30 26 22 18 14 10 6 2 
25 22 19 16 13 10 7 4 1 -2 -5 

示例 7: Python range() 浮点数

Python range()函数不支持浮点数。即用户不能在其任何参数中使用浮点数或非整数。用户只能使用整数。例如

Python3

# Python program to
# show using float
# number in range()
 
# using a float number
for i in range(3.3):
    print(i)
 
# using a float number
for i in range(5.5):
    print(i)

输出 :

for i in range(3.3):
TypeError: 'float' object cannot be interpreted as an integer

示例 8:连接两个 range() 函数

可以使用 itertools 模块的 chain() 方法连接两个 range() 函数的结果。 chain() 方法用于逐个打印参数中提到的可迭代目标中的所有值。

Python3

# Python program to concatenate
# the result of two range functions
from itertools import chain
 
# Using chain method
print("Concatenating the result")
res = chain(range(5), range(10, 20, 2))
 
for i in res:
    print(i, end=" ")

输出:

Concatenating the result
0 1 2 3 4 10 12 14 16 18 

示例 9:使用索引值访问 range()

range()函数返回一个数字序列,作为可以通过其索引值访问的对象。其对象支持正索引和负索引。

Python3

# Python program to demonstrate
# range function
 
ele = range(10)[0]
print("First element:", ele)
 
ele = range(10)[-1]
print("\nLast element:", ele)
 
ele = range(10)[4]
print("\nFifth element:", ele)

输出:

First element: 0

Last element: 9

Fifth element: 4

关于Python range()函数的要点:

  • range()函数仅适用于整数,即整数。
  • 所有参数必须是整数。用户不能在 range() 的startstopstep参数中传递字符串或浮点数或任何其他类型。
  • 所有三个论点都可以是肯定的或否定的。
  • 步长值不能为零。如果一步为零, Python会引发 ValueError 异常。
  • range() 是Python中的一种类型
  • 用户可以通过索引访问 range() 中的项目,就像用户使用列表一样: