前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >range()——python2与pyt

range()——python2与pyt

作者头像
py3study
发布2020-01-03 16:28:22
6940
发布2020-01-03 16:28:22
举报
文章被收录于专栏:python3

当你在不同python版本下使用 range() 时, 需要注意了

我们先在原始IDE下分别码出来:

python 2.

代码语言:javascript
复制
>>> range(2, 19)
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]

python 3.

代码语言:javascript
复制
>>> range(2, 19)
range(2, 19)

而这样

代码语言:javascript
复制
>>> list(range(2, 19))
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]

为什么会这样呢?

这是因为,在py2中range()是作为内置函数, 而在py3中是作为一个内置的方法

注意看以下的源代码(部分):

    py2

代码语言:javascript
复制
def range(start=None, stop=None, step=None): # known special case of range
    """
    range(stop) -> list of integers
    range(start, stop[, step]) -> list of integers
    
    Return a list containing an arithmetic progression of integers.
    range(i, j) returns [i, i+1, i+2, ..., j-1]; start (!) defaults to 0.
    When step is given, it specifies the increment (or decrement).
    For example, range(4) returns [0, 1, 2, 3].  The end point is omitted!
    These are exactly the valid indices for a list of 4 elements.
    """
    pass

    py3

代码语言:javascript
复制
class range(object):
    """
    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.  range(i, j) produces i, i+1, i+2, ..., j-1.
    start defaults to 0, and stop is omitted!  range(4) produces 0, 1, 2, 3.
    These are exactly the valid indices for a list of 4 elements.
    When step is given, it specifies the increment (or decrement).
    """

运行环境分别为2.7.14和3.5.4

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/09/27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档