python3+ 和 Python2+的一些区别


一、性能
Python3.0速度比Python2.0慢一些

二、编码
Py3.X源码文件默认使用utf-8编码,这就使得以下代码是合法的:

>>中国 = 'china' 
>>print(中国) 
 china 


三、语法

1、python3+ dict的.keys()、.items 和.values()方法返回迭代器,而之前的iterkeys()等函数都被废弃。同时去掉的还有 dict.has_key(),用 in替代它吧,迭代器操作很像set,即不能使用索引,需要转成list形式(list(dic.items)[index]。而python2+ dic.items() 返回的是list。
2、比较函数。Python2+:cmp(a,b)。
python3+:

operator.lt(a, b)   #a <b
operator.le(a, b)   #a<=b
operator.eq(a, b)   #a=b
operator.ne(a, b)   
operator.ge(a, b)   
operator.gt(a, b)   
operator.__lt__(a, b)   
operator.__le__(a, b)   
operator.__eq__(a, b)   
operator.__ne__(a, b)   
operator.__ge__(a, b)   
operator.__gt__(a, b)   


3、 python reload(sys)找不到,name ‘reload’ is not defined
python2:

reload(sys)
sys.setdefaultencoding("utf-8")


在3.x被替换为

import importlib
importlib.reload(sys)


sys.setdefaultencoding(“utf-8”) 这种方式在3.x中被彻底遗弃

4、去除print语句,加入print()函数实现相同的功能。同样的还有 exec语句,已经改为exec()函数
例如:
2.X: print “The answer is”, 2*2
3.X: print(“The answer is”, 2*2)
2.X: print x, # 使用逗号结尾禁止换行
3.X: print(x, end=” “) # 使用空格代替换行
2.X: print # 输出新行
3.X: print() # 输出新行
2.X: print >>sys.stderr, “fatal error”
3.X: print(“fatal error”, file=sys.stderr)
2.X: print (x, y) # 输出repr((x, y))
3.X: print((x, y)) # 不同于print(x, y)!

5、整除:Python3中/表示真除,%表示取余,//结果取整;Python2中带上小数点/表示真除,%表示取余,//结果取整

6、xrange
在 Python 3 中,range() 是像 xrange() 那样实现以至于一个专门的 xrange() 函数都不再存在(在 Python 3 中xrange() 会抛出命名异常)。
这里顺便讲一下python2的range()和xrange()的一些区别
a). range 生成一个list。
b).xrange()生成生成器,迭代时元素是逐个被创建的。所有xrange()节省内存
c).xrange()不可以使用不支持列表切片,所以不用担心越界问题
d).xrange()生成器和普通生成器稍有区别,对于同一个xrange对象,对它进行多次迭代,每次都会从头开始。而常规生成器元素被生成出来之后就从生成器中剔除了

四、第三方库
1、在windows下安装Python第三方库有时很麻烦,尤其是Python2。
Python3比Python2在windows下安装第三方库就方便很多。
比如:TensorFlow、fasttext等等

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值