首页技术文章正文

Python 3.x和Python 2.x有哪些区别?

更新时间:2022-03-07 来源:黑马程序员 浏览量:

Python 3.x不兼容Python 2.x,但这两个系列在语法层面的差别不大。Python 3.x移除了部分混淆的表达方式,但大体语法与Python 2.x相似,Python 3.x的使用者可以轻松阅读Python 2.x编写的代码。本节将列举Python 3.x和Python 2.x的部分区别,以帮助大家了解它们之间的差异。

(1)编码方式

Python 3.x默认采用UTF-8编码,对中文和英文都有良好的支持;Python 2.x默认采用ASCII编码,对中文支持不够良好,为了防止因程序包含中文而报错,一般在Python2.x文件首行将编码格式设置为UTF-8,设置方式如下:

# -*-coding:utf-8 -*-
除需在程序首行添加以上代码外,Python 2.x编写的程序中需要使用decode()方法和encode()方法对接收和输出的字符格式进行转换。

(2) print 语句

Python 3.x中用print()函数取代了python 2.x中的print语句,两者功能相同,格式不同。具体示例如下:

Python 2.x

>>> print 3,4
3 4

Python 3.x

>>>  print(3,4)
3 4

(3)除法运算

Python 3.x中两个整数相除(使用运算符“/”)返回一个浮点数,不再返回整数;使用运算符“//”实现整除的用法一样。具体示例如下:

Python 2.x

>>>1/2       #整数相除
0
>>>1.0/2.0    #浮点数相除
0.5

Python 3.x

>>> 1/2
0.5
>>> 1//2
0

(4)八进制表示

Python 3.x中只使用“0o”开头以表示八进制,删除了Python 2.x中使用“0”开头的表示方法。

(5)比较行为

Python3.x只使用“!=”表示不等运算,删除了Python 2.x中的“<>”表示方法。Python3.x中的<、<=、>、>=运算符被用于比较两个不存在有意义顺序的元素时不再返回布尔值,而是抛出异常。具体示例如下:

Python 2.x

>>>1 <'a'
Flase

Python 3.x

>>> 1 <'a'
Tracapack (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: '<' not supported between instances of 'int' and 'str'

(5)整数类型

Python 3.x中的整型不再区分整型和长整型,只保留int类型,且int类型的长度只与计算机的内存有关,内存足够大,整数就能足够长;同时sys.maxint常量也被删除。

(7) 关键字

Python3.x中增加了关键字as、with、True、False、None。

(8) input()函数

Python 3.x中使用input()函数取代了raw_input()函数。

(9) range()函数

Python 3.x中使用list()函数对 range()函数的返回值进行转换,以实现2.x中range()返回列表的功能。具体示例如下:

Python 2.x

>>> range(5)
[0, 1, 2, 3, 4]

Python3.x

>>> range(5)
range (0, 5)
>>> list (range (5))
[0,1,2,3,4]

(10)异常

Python3.x中使用as关键字标识异常信息。具体示例如下:

Python 2.x

>>> try:
...   raise TypeError,"类型错误"
…  except TypeError,err:
...    print err.message
...
类型错误

此外Python3.x中取消了异常类的序列行为和.message 属性。本节只列举了Pytbon版本的部分区别,更多内容可参见Python 官网文档。




猜你喜欢:

为什说Python语言对编程小白更友好?

遍历Python字典的几种方法

python字典操作:Python字典详细教程

使用hist()绘制直方图

黑马程序员Python+大数据开发培训

分享到:
在线咨询 我要报名
和我们在线交谈!