无名商城论坛

搜索
查看: 240|回复: 0

[其他技术] 【FX】Python入门基础(八)Python版本区别

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32464
发表于 2022-5-8 15:58:00 | 显示全部楼层 |阅读模式


和 Python 2.x 版本相比,Python 3.x 版本在语句输出、编码、运算和异常等方面做出了一些调整,本节就对这些调整一一做一下简单介绍。
本节适合有 Python 基础的学员阅读,初学者可先跳过本节,整体学完 Python 之后,再回过头来阅读。

Python 3.x print函数代替了print语句
在 Python2.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 "<stdin>", 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 编码,可以很好地支持中文或其它非英文字符。

例如,输出一句中文,使用 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 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 版本处理异常的示例代码如下所示:
#Python 2.x
>>> try:
...  raise TypeError,"类型错误"
... except TypeError,err:
...  print err.message
...
类型错误

#Python 3.x
>>> try:
...     raise TypeError("类型错误")
... except TypeError as err:
...     print(err)
...
类型错误
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表