程序员的知识教程库

网站首页 > 教程分享 正文

Python笔记 range()详解(python的range用法)

henian88 2024-09-11 03:44:19 教程分享 11 ℃ 0 评论

内置函数range()太重要了,使用的频率也相当地高,与各种语句搭配使用,构成各种Python程序。

range()详解

range()函数内置于Python3中,用于构建不可变的数字序列对象,一般和for循环搭配用于遍历。

1. range()的4种形式

range()的参数必须是int或者任何可以执行__index__的对象,如果参数被忽略,默认就是1。参数可是以正也可以是负。但至少要有一个参数。

1.1 range(start, stop,step)

  • start 开始于,包含本身
  • stop 结束于,不包含本身
  • step 步进,元素之间的间隔,默认是1
  • start到stop的方向必须与step的方向一致,否则会返回空。即step的正负必须与stop一致。

In [1]:

list (range(2, 10, 3)) #从2开始以3为步进至10

Out[1]:

[2, 5, 8]

In [2]:

list (range(-1, -10, -3)) # 从-1开始以-3为步进至-10

Out[2]:

[-1, -4, -7]

In [3]:

list (range(-5, 3, 2)) # 从-5开始以2为步进至1

Out[3]:

[-5, -3, -1, 1]

In [4]:

list (range(3, -8, -4)) # 从3开始以-4为步进至-8

Out[4]:

[3, -1, -5]

In [5]:

list (range(-2, -6, 2)) # 以-2开始2为步进至-6,是不可能的,返回空

Out[5]:

[]

In [6]:

list (range (-2, 6, -3)) #以-2开始-3为步进至6是不可能的,返回空

Out[6]:

[]

In [7]:

list (range (len([]), len((1,2,3)), len('Py')))

Out[7]:

[0, 2]

1.2 range(start, stop)

  • 只写二个参数,默认第一个是start,第二个是stop
  • 忽略step,若stop为正,则默认step为1
  • 若stop为负,则step不可忽略,否则均返回空值。

In [8]:

list (range(1, len('Python')))

Out[8]:

[1, 2, 3, 4, 5]

In [9]:

list (range(-3, -7))

Out[9]:

[]

In [10]:

list (range(-3, 7))

Out[10]:

[-3, -2, -1, 0, 1, 2, 3, 4, 5, 6]

In [11]:

list (range(3, -7))

Out[11]:

[]

In [12]:

list (range(3, -7, -2))

Out[12]:

[3, 1, -1, -3, -5]

1.3 range(stop)

  • 只写一个参数,默认是stop
  • 忽略start与step,若stop为正,则默认start=0, step=1
  • 若只写一个负参数,默认返回空。

In [13]:

list (range(4))

Out[13]:

[0, 1, 2, 3]

In [14]:

list (range(-4))

Out[14]:

[]

1.4 range(0) 与 range()

  • range(0) 返回空对象
  • range()报错,range()必须至少有一个参数

In [15]:

list (range(0)) # range(0)返回空

Out[15]:

[]

list (range()) # range()报错,必须有一个参数

2. range类型的优势与作用

相比于列表或者元组,range所占的内容总是一样的,只有三个参数,start/stop/step,不管它实际的大小是多少,它始终只点三个值,想想列表与元组,实际有多大,就有占多少值,range实在是太省内存了。

range用于包含测试,元素索引查找及切片等

In [16]:

r1 = range (1, 9, 2)
r1

Out[16]:

range(1, 9, 2)

In [17]:

8 in r1

Out[17]:

False

In [18]:

7 in r1

Out[18]:

True

In [19]:

r1.index(3)

Out[19]:

1

In [20]:

r1[2]

Out[20]:

5

In [21]:

r1[1:3]

Out[21]:

range(3, 7, 2)

In [22]:

r1[-1]

Out[22]:

7

3. range()的比较

如果range()所呈现的序列是一样,则他们是相等,可以进行==,!=运算。即使它们所具有的参数是不一样的。

In [23]:

r2 = range(0)
r3 = range(-2)

In [24]:

r2 == r3

Out[24]:

True

In [25]:

r1 == r2

Out[25]:

False

In [26]:

r4 = range(2, 7, 3)
r5 = range(2, 6, 3)

In [27]:

r4 == r5

Out[27]:

True

In [28]:

r3 != r4

Out[28]:

True


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表