python2.x与3.x版本区别(二)

python2.x与3.x版本区别(二)

接着上篇博客中提到python2和pytho3的大致区别,本文将对其中具体的函数以及数据类型进行区分。

range和xrange

Python3中不再使用xrange方法,只有range方法

range在Python2中返回列表,而在Python3中返回range可迭代对象

输入:
a=range(10)
print(a)
print(list(a))

输出:
range(0, 10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

True和False

True和False在Python2中是两个全局变量,数值上对应1和0,既然是变量就可以被赋值,但这样容易造成混乱;故在Python3中 True和False变为两个关键字,永远指向两个固定对象,不允许被重新赋值。

迭代器

Python2中很多返回列表对象的内置函数和方法在Python3中都改成了返回类似于迭代器的对象,迭代器的惰性求值特性使得操作大数据更加有效率。
字典对象dict.keys()、dict.values()方法都不再返回列表,而是生成一个类似迭代器的“view”对象返回。高阶函数map、filter、zip返回也都从列表变成了对象。Python2的迭代器必须实现next方法,二Python3改成了next。

nonlocal

在Python2中可以在函数中使用global声明变量为全局变量,但是给一个变量声明为非局部变量是无法实现的。在Python3,新增了关键字nonlocal,使得定义非jubu变量成为了可能。

next()函数和.next()方法

my_generator = (letter for letter in ‘abcdefg’)
python 2中可以用 next(my_generator) 和 my_generator.next() 两种方式。
python 3中只能用 next(my_generator)这种方式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值