猫史档案馆


真正的range……

用户:程序侯程序侯查看:8 回复:7 评论:8 创建时间:2020-06-07T17:31:37


众所周知,使用range函数生成的列表打印出来不是一个列表,而是一个range(,,):

print(range(5))
>>>range(0, 5)
print(range(1, 101))
>>>range(1, 5))
print(range(10, 201, 2))
>>>range(10, 201, 2) 

(不知道请自行补习功课)

但它又和list、tuple、dist、str和set一样可迭代,也是序列类型:

var = [1, 3.14, [1, 5, 9]]
for i in var:
    print(i)
>>>1 3.14 [1, 5, 9]
var = (1, 1, 2, 3, 5, 8, 13)
for i in var:
    print(i)
>>>1 1 2 3 5 8 13
var = {1 : 2, 3 : 4}
for i in var:
    print(i)
>>>1 3
var = 'abcde'
for i in var:
    print(i)
>>>a b c d e
var = {1, 2, 3, 4, 5}
for i in var:
    print(i)
>>>1 2 3 4 5
var = rsnge(10)
for i in var:
    print(i)
>>>0 1 2 3 4 5 6 7 8 9
这个range还真有点意思,不是吗?今天,我们就来解密一下range的真面目! emotion_雷电猴_疑问 emotion_雷电猴_围观
print(type(range(5)))
<<< <class 'range'>

(内置函数type用于获得变量类型,不知道请自行补习功课)

这说明了什么?range不是list,不是tuple,它是一个独立的变量类型——range!

emotion_雷电猴_哇噻

 


回复

上一页1 页 / 共 1下一页
程序侯程序侯

点赞0


评论


一个STUB用户_6923702一个STUB用户_6923702

那叫迭代器(生成器)!

点赞0


评论


宏图大志EB9j宏图大志EB9j

这是Python吗?

点赞0


评论


宏图大志EB9j宏图大志EB9j

不管咋滴。。。

这是真的!

>>> print(type(range(5)))
<class 'range'>
>>> # 嗯?
>>> a = range(5)
>>> print(type(a))
<class 'range'>
>>> # 奥利给!!!range!

点赞0


评论


宏图大志EB9j宏图大志EB9j

怪的就是...

我从来没见识过'range'这种类型的变量!

(续上行代码)

>>> i = 0
>>> for i in a:
        print(i)


0
1
2
3
4
>>> # 可迭代?

点赞0


评论


Albert钟Albert钟

是啊,range返回的是range类的对象

点赞0


评论


宏图大志EB9j宏图大志EB9j

Python的IDLE的应该是这样的:

>>> XXX(你输入的)
YYY(IDLE的回复)
>>> XXX
YYY
>>> 

点赞0


评论