热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python2和python3的区别

python2和python3的区别1.输出(print)在Python2中,print被视为一个语句而不是一个函数。在使用Python3时,print()会被显式

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函数

青冥有晓月


推荐阅读
author-avatar
lady张昕彤
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有