range是什么?
t = tuple(range(0,10))
print t
为什么老是报错?
t = tuple(range(0,10))
print t
为什么老是报错?
2016-04-06
首先开篇明义 哈哈, 题主的代码无论是在 Python2.x 还是 Python 3.x 中都是可以运行的, 你说的报错应该是 在网站的 课程中报错, 并不是你代码有错误,是网站的 正确性验证 做的太死了。 以下的代码是可以通过该课程的:
t = ( 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ) print t
然后我们莱讲讲 range 到底是什么,range 在 Python2.x 和Python3.x 中返回的不一样, 但是都可以给 tuple 做参数。分开来讲:
Python2.x 中的 range, 官方解释如下:
range([start,] stop[, step]) -> list of integers
Return a list containing an arithmetic progression of integers.
也就是说 在Python2.x 中 range 返回的就是一个整数的 list.
Python3.x 中的 range, 官方解释如下:
range(stop) -> range object
range(start, stop[, step]) -> range object
Return an object that produces a sequence of integers from start (inclusive) to stop (exclusive) by step.
各种调用细节都一样,只是返回的不是list 类型了,而是一个 range object, 也就是说 range 自立门户了,自成一个类型啦。 这个range 类型类似一个生成器。
下面说 tuple()函数, 同样引用官方文档:
tuple(iterable) -> tuple initialized from iterable's items
很明显只要给它传一个 iterable 类型的参数就可以了, Python 中有好多 iterable类型的数据类型,比如说 list, dict, range,甚至于 string 都是可以的。
举报