站长工具seo推广,做阿里巴巴网站运营,公关公司是什么意思,企业创建网站Python版本区别#xff0c;Python 3和Python 2区别详解
Python 版本分为两大流派#xff0c;一个是 Python 2.x 版本#xff0c;另外一个是 Python 3.x 版本#xff0c;Python 官方同时提供了对这两个版本的支持和维护。
2020 年 1 月 1 日#xff0c;Python 官方…Python版本区别Python 3和Python 2区别详解
Python 版本分为两大流派一个是 Python 2.x 版本另外一个是 Python 3.x 版本Python 官方同时提供了对这两个版本的支持和维护。
2020 年 1 月 1 日Python 官方终止了对 Python 2.7 版本最后一个 Python 2.x 版本 的支持这意味着开发者不会在接收到任何来自 Python 2.7 的错误修复或安全更新。自此 Python 2 完全退休Python 3 时代正式来临。
尽管 Python 2 已退出历史舞台 但国内外一些互联网公司仍在使用 Python 2.7 开发程序同时为了让大家更好地了解 Python 3 我们非常有必要知道这两个版本间存在区别。
你也许会问为什么终止支持了还会有公司再使用其实版本的更换是一项庞大、复杂的工作一些小型的互联网公司在人力、财力不足的情况下只能要继续使用低版本的 Python只有万不得已时才会更新版本。
和 Python 2.x 版本相比Python 3.x 版本在语句输出、编码、运算和异常等方面做出了一些调整本节就对这些调整逐一地做简单介绍。
注意本节适合有 Python 基础的学员阅读初学者可先跳过本节建议整体学完 Python 后再回过头来阅读本文。
Python 3.x print()函数代替了print语句
在 Python 2.x 中输出数据使用的是 print 语句 print “3,4” 3,4 或者 print(3,4) (3,4)
但是在 Python 3.x 中print 语句没有了取而代之的是 print() 函数例如 print(3,4) 3 4
如果还像 Python 2.x 中那样使用 print 语句Python 编译器就会报错例如 print “3,4” File “”, line 1 print “3,4” ^ SyntaxError: Missing parentheses in call to ‘print’
Python 3.x 默认使用 UTF-8 编码
Python 2.x 默认采用的 ASCII 编码而 Python 3.x 默认使用 UTF-8 编码相比来说UTF-8 编码可以很好地支持中文或其它非英文字符。
例如输出一句中文使用 Python 2.x 和 Python 3.x 的区别如下
#Python 2.x str “C语言中文网” str ‘C\xe8\xaf\xad\xe8\xa8\x80\xe4\xb8\xad\xe6\x96\x87\xe7\xbd\x91’
#Python 3.x str “C语言中文网” str ‘C语言中文网’
不仅如此在 Python 3.x 中下面的代码也是合法的
中国“China” print(中国) China
Python 3.x 除法运算
和其他语言相比Python 的除法运算要高端很多它的除法运算包含 2 个运算符分别是 / 和 //这 2 个运算符在 Python 2.x 和 Python 3.x 的使用方法如下
/ 运算符
在 Python 2.x 中使用运算符 / 进行除法运算的方式和 Java、C 语言类似整数相除的结果仍是一个整数浮点数除法会保留小数点部分例如
1/2 0 1.0/2 0.5
但是在 Python 3.x 中使用 / 运算符整数之间做除法运算结果也会是浮点数。例如
1/2 0.5
运算符 //
使用运算符 // 进行的除法运算叫做 floor 除法“地板除”也就是输出不大于结果值的一个最大的整数向下取整。此运算符的用法在 Python 2.x 和Python 3.x 中是一样的举个例子
#Python 2.x -1//2 -1
#Python 3.x -1//2 -1
Python 3.x 异常
在 Python 3.x 版本中异常处理改变的地方主要在以下几个方面
在 Python 2.x 版本中所有类型的对象都是直接被抛出的但是在 Python 3.x 版本中只有继承 BaseException 的对象才可以被抛出。在 Python 2.x 版本中捕获异常的语法是“except Exceptionvar:”但在 Python 3.x 版本中引入了 as 关键字捕获异常的语法变更为 “except Exception as var:”。在 Python 3.x 版本中处理异常用 “raise Exception(args)”代替了“raise Exceptionargs”。Python 3.x 版本中取消了异常类的序列行为和 .message 属性。
有关 Python 2.x 版本和 Python 3.x 版本处理异常的示例代码如下所示
#Python 2.x try: … raise TypeError,“类型错误” … except TypeError,err: … print err.message … 类型错误
#Python 3.x try: … raise TypeError(“类型错误”) … except TypeError as err: … print(err) … 类型错误
Python 3.x 八进制字面量表示
在 Python 3.x 中表示八进制字面量的方式只有一种并且必须写成“0o1000”这样的方式原来“01000”的方式不能使用了。举个例子
#Python 2.x 0o1000 512 01000 512
#Python 3.x 01000 File “”, line 1 01000 ^ SyntaxError: invalid token 0o1000 512
Python 3.x 不等于运算符
Python 2.x 中的不等于运算符有 2 种写法分别为 ! 和 但在 Python 3.x 中去掉了 只有 ! 这一种写法例如
#Python 2.x 1!2 True 12 True
#Python 3.x 1!2 True 12 File “”, line 1 12 ^ SyntaxError: invalid syntax
Python 3.x 输入差异
Python 2.x 中提供两种类型输入函数分别是 input() 和 raw_input()前者默认返回的 int整数类型 类型而后者总是返回 str字符串类型Python 3.x 中只提供了一个输入函数 input()该函数的使用方法与 raw_input() 相似总是返回 str 类型。示例如下
Python 2.x
ainput(请输出)
请输出123type(a)
type int
binput(请输入)
请输出C语言中文网type(b)
type strcraw_input(请输入)
请输入123
type(c)
type str# Python3.xdinput(请输入)
请输入123d
123type(d)
class strPython 3.x 数据类型
Python 3.x 中对数据类型也做了改动比如说 Python 3.x 去除了 long 类型现在只有一种整形 int但它的行为就像是 Python 2.x 版本中的 long。 Python 3.x 新增了 bytes 类型对应 Python 2.x 版本的八位串定义 bytes 字面量的方法如下所示 bb’China’ type(b) type ‘bytes’ 字符串对象和 bytes 对象可以使用 .encode() 或者 .decode()方法相互转化例如 sb.decode() s ‘China’ b1s.encode() b1 b’China’ Python 3.x 中字典的 keys()、items() 和 values() 方法用返回迭代器且之前的 iterkeys() 等函数都被废弃同时去掉的还有 dict.has_key()改为用 in 替代。