>>print(3,4)5(3,4)但是在Python3.x中,print语句没" />
Python 2.x 与Python 3.x的区别 您所在的位置:网站首页 python2x和3x的版本区别 Python 2.x 与Python 3.x的区别

Python 2.x 与Python 3.x的区别

2024-01-21 17:45| 来源: 网络整理| 查看: 265

Python 3.x print函数代替了print语句

在 Python2.x 中,输出数据使用的是 Print 语句,例如:

1 >>> print "3,4" 2 3,4 3 或者 4 >>> print(3,4) 5 (3,4)

但是在 Python 3.x 中,print 语句没有了,取而代之的是 print 函数,例如:

1 >>> print(3,4) 2 3 4

如果还像 Python 2.x 中那样使用 print 语句,Python 编译器就会报错,例如:

1 >>> print "3,4" 2 File "", line 1 3 print "3,4" 4 ^ 5 SyntaxError: Missing parentheses in call to 'print' Python 3.x 默认使用 UTF-8 编码

相比 Python 2.x 默认采用的 ASCII 编码,Python 3.x 默认使用 UTF-8 编码,可以很好地支持中文或其它非英文字符。

例如,输出一句中文,使用 Python 2.x 和 Python 3.x 的区别如下:

1 #Python 2.x 2 >>>str ="C博客园" 3 >>>str 4 'C\xe8\xaf\xad\xe8\xa8\x80\xe4\xb8\xad\xe6\x96\x87\xe7\xbd\x91' 5 6 #Python 3.x 7 >>>str ="C博客园" 8 >>>str 9 'C博客园'

 

不仅如此,在 Python 3.x 中,下面的代码也是合法的:

1 >>>中国="China" 2 >>>print(中国) 3 China Python 3.x 除法运算

和其他语言相比,Python 的除法运算要高端很多,它的除法运算包含 2 个运算符,分别是 / 和 //,这 2 个运算符在 Python 2.x 和 Python 3.x 的使用方法如下:

 / 运算符

在 Python 2.x 中,使用运算符 / 进行除法运算的方式和 Java、C 语言类似,整数相除的结果仍是一个整数,浮点数除法会保留小数点部分,例如: 

1 >>>1/2 2 0 3 >>>1.0/2 4 0.5

但是在 Python 3.x 中使用 / 运算符,整数之间做除法运算,结果也会是浮点数。例如:

1 >>>1/2 2 0.5  运算符 //

使用运算符 // 进行的除法运算叫做 floor 除法,也就是输出不大于结果值的一个最大的整数(向下取整)。此运算符的用法在 Python 2.x 和Python 3.x 中是一样的,举个例子:

1 #Python 2.x 2 >>> -1//2 3 -1 4 5 #Python 3.x 6 >>> -1//2 7 -1  Python 3.x 异常

在 Python 3.x 版本中,异常处理改变的地方主要在以下几个方面:

在 Python 2.x 版本中,所有类型的对象都是直接被抛出的,但是在 Python 3.x 版本中,只有继承 BaseException 的对象才可以被抛出。 在 Python 2.x 版本中,捕获异常的语法是“except Exception,var:”;但在 Python 3.x 版本中,引入了 as 关键字,捕获异常的语法变更为 “except Exception as var:”。 在 Python 3.x 版本中,处理异常用 “raise Exception(args)”代替了“raise Exception,args”。 Python 3.x 版本中,取消了异常类的序列行为和 .message 属性。

有关 Python 2.x 版本和 Python 3.x 版本处理异常的示例代码如下所示:

1 #Python 2.x 2 >>> try: 3 ... raise TypeError,"类型错误" 4 ... except TypeError,err: 5 ... print err.message 6 ... 7 类型错误 8 9 #Python 3.x 10 >>> try: 11 ... raise TypeError("类型错误") 12 ... except TypeError as err: 13 ... print(err) 14 ... 15 类型错误  Python 3.x 八进制字面量表示

在 Python 3.x 中,表示八进制字面量的方式只有一种,并且必须写成“0o1000”这样的方式,原来“01000”的方式不能使用了。举个例子:

1 #Python 2.x 2 >>> 0o1000 3 512 4 >>> 01000 5 512 6 7 #Python 3.x 8 >>> 01000 9 File "", line 1 10 01000 11 ^ 12 SyntaxError: invalid token 13 >>> 0o1000 14 512  Python 3.x 不等于运算符

Python 2.x 中的不等于运算符有 2 种写法,分别为 != 和 ,但在 Python 3.x 中去掉了 ,只有 != 这一种写法,例如:

1 #Python 2.x 2 >>> 1!=2 3 True 4 >>> 12 5 True 6 7 #Python 3.x 8 >>> 1!=2 9 True 10 >>> 12 11 File "", line 1 12 12 13 ^ 14 SyntaxError: invalid syntax  Python 3.x 数据类型

Python 3.x 中对数据类型也做了改动,比如说:

Python 3.x 去除了 long 类型,现在只有一种整形 int,但它的行为就像是 Python 2.x 版本中的 long。

Python 3.x 新增了 bytes 类型,对应 Python 2.x 版本的八位串,定义 bytes 字面量的方法如下所示: 

1 >>>b=b'China' 2 >>>type(b) 3

字符串对象和 bytes 对象可以使用 .encode() 或者 .decode()方法相互转化,例如:

1 >>>s=b.decode() 2 >>>s 3 'China' 4 >>>b1=s.encode() 5 >>>b1 6 b'China'

Python 3.x 中,字典的 keys()、items() 和 values() 方法用返回迭代器,且之前的 iterkeys() 等函数都被废弃。同时去掉的还有 dict.has_key(),改为用 in 替代。

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有