【Python基础知识库】Python2.x 与Python3.x的主要区别

详细参考

  • 输入, py2中:raw_input(); py3中:input()

  • 输出, py2中:print语句; py3中:print()函数

  • 除法,py2中整数间进行’/‘和’//‘运算返回的是整数,而py3的’/'运算返回的是浮点数

  • 遍历范围,py2中:range()或xrange(); py3中:不等于,py2中:range

  • 不等于,py2中:<>或!= ; py3中:!=

  • 编码问题,py3默认使用unicode,字节是bytes;而py2中字节是str, 默认支持ascii编码,unicode需要在前面加u

  • 异常,py2中:except exec, var ; py3中:except exec as var

  • 八进制字面量,py2中:0o777或0777 ; py3中:0o777

  • 去掉了repr表达式``,py2中:反引号相当于repr()的作用; py3中:去除反引号写法

  • 多个模块变化

旧的名字新的名字
_winregwinreg
ConfigParserconfigparser
copy_regcopyreg
Queuequeue
SocketServersocketserver
reprreprlib
  • 数据类型,py3中去除long类型,只有int

  • rasie,py2中:raise IOError, “file error”; py3中:raise IOError(“file error”)

  • 去除.next(),py2中:next(generator)和generator.next(); py3中:next(generator)

  • py3中for循环变量不会导致命名空间泄漏

  • py3中不能比较不可排序类型,需同类型比较

  • py3中range、zip、map、reduce、filter等返回的是可迭代对象,而不是列表

  • py3中新增asynico内置库,async/await原生协程支持异步编程

  • py3中移除cmp函数

  • py3中去除元组参数解包

  • 增加了@abstractmethod和 @abstractproperty两个 decorator,编写抽象方法(属性)更加方便

  • 移除了cPickle模块,可以使用pickle模块代替

  • 移除了new模块

  • 移除了 audiodev, Bastion, bsddb185, exceptions, linuxaudiodev, md5, MimeWriter, mimify, popen2,
    rexec, sets, sha, stringold, strop, sunaudiodev, timing和xmllib模块

  • 移除了imageop模块

  • 迭代器的next()方法改名为__next__(),并增加内置函数next(),用以调用迭代器的__next__()方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值