python2 和 python3 的区别

python2 和 python3 的区别

1.输出(print)

在 Python 2 中, print 被视为一个语句而不是一个函数。
在使用 Python 3 时,print()会被显式地视为一个函数。
注:print()语法也与 Python 2.7 向后兼容,因此您的 Python 3 print()函数可以在任一版本中运行。

2.整数的除法

在 Python 2 中,您键入的任何不带小数的数字,将被视为整数的编程类型。 5 / 2 = 2    5.0 / 2.0 = 2.5
在 Python 3 中,整数除法变得更直观. 5 / 2 = 2.5    5 // 2 = 2 <整除>
注:在 Python 3 中的这种修改使得整数除法更为直观,并且它的特点是不能向后兼容 Python 2.7。python2中也适用整除语法(//)
    并不是舍弃小数部分,而是执行floor操作,如果要截取小数部分,那么需要使用math模块的trunc函数
    trunc 函数是不管符号的,只对数值部分取整

3.字符串编码

Python 2 默认使用 ASCII 字母表
Python 3 默认使用 Unicode
注:如果你希望你的 Python 3 代码向后兼容 Python 2,你可以通过在你的字符串的前面保留 “u” 来实现。 u“Hello,Sammy!”   
    前缀 u 代表 Unicode

4.异常

捕获异常的语法由 except exc, var 改为 except exc as var。
在2.x时代,所有类型的对象都是可以被直接抛出的,在3.x时代,只有继承自BaseException的对象才可以被抛出。 
2.x raise语句使用逗号将抛出对象类型和参数分开,3.x取消了这种奇葩的写法,直接调用构造函数抛出对象即可
在2.x时代,异常在代码中除了表示程序错误,还经常做一些普通控制结构应该做的事情
在3.x中可以看出,设计者让异常变的更加专一,只有在错误发生的情况才能去用异常捕获语句来处理。

5.xrange 函数

在 Python 2 中 xrange() 创建迭代对象的用法是非常流行的。比如: for 循环或者是列表/集合/字典推导式。
在 Python 3 中,range() 是像 xrange() 那样实现以至于一个专门的 xrange() 函数都不再存在
(在 Python 3 中 xrange() 会抛出命名异常)。

6.字面量进制

在Python 2.x, 八进制数必须写成0o777,原来的形式0777不能用了;二进制必须写成0b111
在Python 3.x中,表示八进制字面量的方式只有一种,就是0o1000

7.不等运算符

Python 2.x中不等于有两种写法 != 和 <>
Python 3.x中去掉了<>, 只有!=一种写法

8.迭代器

迭代器iterator的next()函数被Python3废弃,统一使用next(iterator)

9.输入

raw_input函数被Python3废弃,统一使用input函数

青冥有晓月

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值