2019.8.14Python基础学习笔记——Python2,3的选择和区别

Python基础学习笔记

现在作者称Python2.x的支持版本将持续到2020年,所以选择Python3.x进行学习,弊端为当前还有许多扩展库版本更新滞后于Python版本,所以有些扩展库在Python3.x中难以调用。

Python2.x至3.x的语句转变

print语句:
2.x中print语句可直接进行输出,3.x中print只能由函数实现。

>>> print "3,4"
结果:3 4  
//2.x中可使用print语句直接输出
>>>print (3,4)
>>>print("hello,python")
结果: 3 4 
        hello,python
//3.x中print必须以函数方式实现

代码默认编码
2.x中使用ASCII编码,所以输出中文时输出的是ASCII值,在3.x中使用UTF-8编码,支持多国语言,包括中文,所以3.x中变量名可以设置为中文。

//2.x
>>>str ="C语言中文网"
>>>str
结果: 'C\xe8\xaf\xad\xe8\xa8\x80\xe4\xb8\xad\xe6\x96\x87\xe7\xbd\x91'
//3.x
>>>str ="C语言中文网"
>>>str
结果: 'C语言中文网'

P.S.在Python3.x中,支持中文编码定义变量。

>>>中国="China"
>>>print(中国)
结果: China

除法运算
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 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)
...
类型错误

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

#Python 2.x
>>> 0o1000
512
>>> 01000
512

#Python 3.x
>>> 01000
  File "<stdin>", line 1
    01000
        ^
SyntaxError: invalid token
>>> 0o1000
512

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

#Python 2.x
>>> 1!=2
True
>>> 1<>2
True

#Python 3.x
>>> 1!=2
True
>>> 1<>2
  File "<stdin>", line 1
    1<>2
      ^
SyntaxError: invalid syntax

数据类型
Python 3.x 中对数据类型也做了改动,比如说:
Python 3.x 去除了 long 类型,现在只有一种整形 int,但它的行为就像是 Python 2.x 版本中的 long。
Python 3.x 新增了 bytes 类型,对应 Python 2.x 版本的八位串,定义 bytes 字面量的方法如下所示:

>>>b=b'China'
>>>type(b)
<type 'bytes'>

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

>>>s=b.decode()
>>>s
'China'
>>>b1=s.encode()
>>>b1
b'China'
发布了25 篇原创文章 · 获赞 6 · 访问量 1436

猜你喜欢

转载自blog.csdn.net/weixin_43948991/article/details/99539216