- Python程序设计
- 张雪萍主编
- 534字
- 2020-08-27 23:59:43
2.5 range
1.range的本质
range是Python中的一个不可变序列。
使用 range 可以生成一个数值序列。它的本质是生成一个序列,以便执行特定次数的循环,这是它的一般用途。尽管它是一个一般的函数,但它也是有类型的,它的类型是“range”。
比如我们想在屏幕上输出5次“Hello world!”,可以这样来编写代码。
![](https://epubservercos.yuewen.com/ED6D45/13898202805418106/epubprivate/OEBPS/Images/82_1.jpg?sign=1738942954-sMCIi1mOtakJlDYFBepEBtFZWcpn4yJY-0-f4735dd38fbe02ce2a74e3957859b7b9)
range(5)是一个函数,生成一个包含5个元素的序列,这5个元素是从0到4,注意不包含5。
如果要使用遍历过程中变量i的值,可以这样使用:
![](https://epubservercos.yuewen.com/ED6D45/13898202805418106/epubprivate/OEBPS/Images/82_2.jpg?sign=1738942954-fnSpeGqnPq607bpN9uyqJA4kX0Mb5fiP-0-c5c00bb745b9ab114d39ec0e0db943dc)
这是range()函数的一般用途,但它本身也是有类型的。如果要生成一个包含5个元素的序列,可以通过以下的代码来实现。
![](https://epubservercos.yuewen.com/ED6D45/13898202805418106/epubprivate/OEBPS/Images/82_3.jpg?sign=1738942954-aWZKkFAGrTcsMbhqLy0zoeR3QZGyo2T6-0-9ffd518123c51c67acfac4296ec48f39)
range 函数的结果虽然不像列表和元组那么直观,但仍然可以检测它的类型。它是range类型的,range类型属于序列的不可变类型。
与列表和元组一样,可以通过rang的下标来访问它的元素的值,但它不支持原位改变。
![](https://epubservercos.yuewen.com/ED6D45/13898202805418106/epubprivate/OEBPS/Images/82_4.jpg?sign=1738942954-5GElraWk8RC2NgJeTce2SuBFn32ZZjeZ-0-f8b049f954fc2b7ebd3317a337d4151c)
2.range的声明
range的声明有3种方式(见表2-11)。
表2-11 range的声明
![](https://epubservercos.yuewen.com/ED6D45/13898202805418106/epubprivate/OEBPS/Images/83_1.jpg?sign=1738942954-gxlNe4rCZV7Y1uQn0GbeZWx5EQdnMiWf-0-0a447a07cec5a5e0b85395799159b5a7)
![](https://epubservercos.yuewen.com/ED6D45/13898202805418106/epubprivate/OEBPS/Images/83_2.jpg?sign=1738942954-651IiZML25wkU5mFRvTVFUXKM0Ceubgs-0-b6ff855b8a05a2b4fabbaf8ad46bce98)
“range(1,10,3)”得到的是1至9中间的3个值,即从1开始,按步长3递增,直到10,但不包括10。
3.range支持序列的通用操作
range 比较简单,尽管它一般用在循环语句中,但它确实是序列中的一种,存在自己的类型,虽然它不支持像列表一样的原位操作,但序列的通用操作都适用于它,如判断元素是否在序列之内、求最大最小值、求长度、检索某一个元素的位置、统计元素出现的次数,等等。