上一篇 :
无在线实例详解Python range()函数
在本文中,我们将range()
在不同的示例的帮助下学习如何使用Python的函数。内置函数range()
生成给定起始整数和终止整数之间的整数,即,它返回范围对象。使用for
循环,我们可以迭代该range()
函数产生的数字序列。range()
通过一个简单的示例,让我们了解如何使用Python 3 的功能。
print("Python range() example")
print("Get numbers from range 0 to 6")
for i in range(6):
print(i, end=', ')
注意:由于range()
函数不包含结果中的最后一个(停止)数字,因此我们获得了0到5之间的整数 。
range()函数的语法和参数
range(start, stop[, step])
它需要三个参数。这三个参数中的三个是可选的。即,start和step是可选参数。
- 甲 开始参数是序列的起始号码。即下限。默认情况下,如果未指定,则以0开头。
- 一个停止参数是一个上限。即,生成不超过该数字的数字。结果
range()
中不包括该数字。 - 该步骤是在结果每个数字之间的差值。如果未指定,则该步骤的默认值为1。
range()函数示例
现在让我们看看所有可能的情况。以下是range()函数的三个变体。
# Print first 5 numbers using range function
for i in range(5):
print(i, end=', ')
只有stop参数传递给range()
。因此,默认情况下,它需要start = 0
和step = 1
。
示例二–使用两个参数(即开始和停止)
# Print integers within given start and stop number using range()
for i in range(5, 10):
print(i, end=', ')
注意:默认情况下,它的步进值为1。
示例三 –使用所有三个参数
# using start, stop, and step arguments in range()
print("Printing All even numbers between 2 and 10 using range()")
for i in range(2, 10, 2):
print(i, end=', ')
所有三个参数,即指定start = 2
, stop = 10
, step = 2
。步长值为2,因此每个数字之间的差为2。
实践问题
在Python中使用range()
函数生成从9到100可以被3整除的数字范围。
解决方案:
for i in range(9, 100, 3):
print(i)
关于range()函数参数要记住的要点
range()
仅适用于整数。所有参数必须是整数。您不能在的start,stop和step参数中使用浮点数或任何其他类型range()
。- 这三个参数都可以是正数或负数。
- 步长值不能为零。如果步骤为零,Python会引发ValueError 异常。
使用range()进行循环
如您所知,for循环重复执行代码或语句块固定次数。使用for循环,我们可以遍历该range()
函数产生的数字序列。让我们看看如何使用for循环和range()
函数打印1到10之间的奇数。使用此示例,我们可以了解在一起i
使用range()
和for循环时如何获得其价值。
for i in range(1, 10, 2):
print("Current value of i is:", i)
在for i in range()
i中,是迭代器变量。要了解for i in range()
Python的含义,首先,我们需要了解range()
函数的工作原理。该range()
函数使用生成器生成一个范围内的数字,即,它不会一次生成所有数字。仅在for循环迭代要求时才生成下一个值。在每次循环迭代中,Python都会生成下一个值,并将其分配给iterator变量i
。
程序执行
- 正如您在输出中看到的那样,该变量
i
没有同时获得值1、3、5、7、9。 - 在for循环的第一次迭代中,的值为
i
的值start
。即,的第一个值i
是范围的起始编号。在这里,范围从1开始。 - 接下来,在for循环的每个后续迭代中,值的值
i
顺序递增。的值i
由公式确定i = i + step
。即,在第二次迭代中,i
变为3,依此类推。
如您所知,在for循环的每次迭代中,都会range()
生成下一个数字并将其分配给iterator变量i
。即,我们按需获取数字(range()
在循环移至下一个迭代时,逐个生成数字)。因此,此行为range()
更快并且节省了内存。
实践问题
使用Python range()
和for循环打印以下数字模式。
1个
2 2
3 3 3
解析方案
for num in range(4):
for i in range(num):
print(num, end=" ")
print() # new line after each row to show pattern correctly
包含范围
在本节中,我们将学习如何生成一个包含范围。该 range(n)
是独家性质的,这就是为什么它不包括在输出中的最后一个数字。即,给定的端点永远不会成为生成结果的一部分。例如,range(0, 5) = [0, 1, 2, 3, 4]
。结果包含从0到最多5的数字,但不包括5,总计数为5。range(start, stop)
输出中不包括停止号,因为在Python中索引(i)始终以0开头。
如果要在输出中包括最后一个数字,即,如果要包含一个包含范围,则将stop
参数值设置为stop+step
。
包含range()示例。
# Printing inclusive range
start = 1
stop = 5
step = 1
stop +=step #now stop is 6
for i in range(start, stop, step):
print(i, end=', ')
例子2
# Printing inclusive range
start = 2
stop = 10
step = 2
stop +=step #now stop is 12
for i in range(start, stop, step):
print(i, end=', ')
range()中的步长
步骤是的可选参数range()
。步骤是结果序列中每个数字之间的差。如果步长为2,则每个数字之间的差为2。如果未指定,则步长的默认大小为1。我们可以通过有效地使用步骤参数来执行很多操作,例如反转序列,打印负范围。
使用负步减range()
我们可以在range()
函数的所有参数(即开始,停止和步进)中使用负值。
start = -2
stop = -10
step = -2
print("Negative number range")
for number in range(start, stop, step):
print(number, end=', ')
我们先来了解上面的程序,我们设置,start = -2
,stop = -10
,step = -2
。
- 在for循环的第一次迭代中,结果是
-2
- 在for循环的第二次迭代中,结果是
-2, -4
因为-2+(-2) = -
4,依此类推。 - 最后的迭代输出是
-2, -4, -6,-8
从负数到正数的范围递减
在此示例中,我们将学习如何使用step参数显示从负到正的数字范围。负数范围。
# printing range from negative to positive
for num in range(-2, 5, 1):
print(num, end=", ")
Python范围从正数到负数
在此示例中,我们可以学习如何有效地使用step参数来显示从正到负的数字。
print (" printing range from Positive to Negative")
for num in range(2,-5,-1):
print(num, end=", ")
将range()转换为列表
如果执行print( type( range(10) ) )
,将得到`输出。Python
range()`函数不返回列表类型。它返回一个范围对象,即类型为range的序列对象。因此,我们得到一个不可变的整数序列对象。
我们可以将a的输出转换range()
为Python列表。使用list
class将范围输出转换为list。让我们用下面的例子来理解这一点。
print("Converting python range() to list")
even_list = list( range(2, 10, 2))
print("printing list", even_list)
我们还可以使用range()
函数通过其索引号访问Python列表项。
print("Use of range() to access Python list using index number")
sample_list = [10, 20, 30, 40, 50]
for i in range(len(sample_list)):
print("List item at index ", i, "is ", sample_list[i])
注意:使用len(list)
,我们可以获得列表项的计数,我们使用此计数range()
来循环迭代固定的次数。
反向范围
如果要在Python中按降序或逆序打印范围内的数字序列,则可以使用两种方法。
第一种是使用负值或向下步进值。即,将a的step
参数设置range()
为-1
。例如,如果要显示一个像[5,4,3,2,1,0]这样的数字序列,即我们想要带range()
功能的for循环的反向迭代或反向迭代。
让我们看看如何使用 Python中的索引向后循环以显示从5到0的数字范围。
输出:
以相反的顺序显示数字范围
5、4、3、2、1、0
使用reversed
函数在Python中反转范围
另外,使用reversed()
函数,我们可以反转任何序列。如果我们将reversed()
函数与一起使用range()
,则将返回range_iterator
,以相反的顺序访问给定范围的数字。下面的示例将使您知道如何在Python中进行反向for循环。
print("Printing reverse range using reversed()")
for i in reversed(range(0, 5)):
print(i)
检查输出类型是否range()
与reversed()
print("Checking the type")
print(type(range(0, 5)))
print(type(reversed(range(0,5))))
另外,如果您需要列表,则需要将reversed()
函数的输出转换为list。因此,您可以获得范围的反向列表。
使用反向打印列表range()
。
print("Printing list in reverse order with range")
reverseed_list = list(reversed(range(0, 5)))
print(reverseed_list)
print("Second example to reverse list with range")
reverse_list2 = list(range(5, -1, -1))
print(reverse_list2)
print("Third Example to reverse list with range")
reverse_list3 = list(range(2, 20, 2)[::-1])
print(reverse_list3)
本文翻译自:https://pynative.com/python-range-function/
建议使用PC或笔记本电脑,浏览器使用Chrome或FireFox进行浏览,以开启左侧互动实验区来提升学习效率,推荐使用的分辨率为1920x1080或更高。
我们坚信最好的学习是参与其中这一理念,并致力成为中文互联网上体验更好的学练一体的IT技术学习交流平台。

您可加QQ群:575806994,一起学习交流技术,反馈网站使用中遇到问题。
内容、课程、广告等相关合作请扫描右侧二维码添加好友。
狐狸教程 Copyright 2021