python版本区别,Python 3 和 Python 2 区别

Python2.x 版本相比, Python 3.x 版本在语句输出、编码、运算和异常等方面做出了一些调整

这些调整一一做一下简单介绍:

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

Python2.x 中,输出数据使用的是 Print 语句,例如: print "3,4"  

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

 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 版本中,异常处理改变的地方主要在以下几个方面:

1.    在 Python 2.x 版本中,所有类型的对象都是直接被抛出的,但是在 Python 3.x 版本中,只有继承 BaseException 的对象才可以被抛出。

2.    在 Python 2.x 版本中,捕获异常的语法是“except Exception ,var:”;但在 Python 3.x 版本中,引入了 as 关键字,捕获异常的语法变更为   “except Exception as var:”。

3.    在 Python 3.x 版本中,处理异常用   “ raise Exception(args)”代替了“raise Exception ,args”。

4.    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 "<stdin>", line 1

01000

^

SyntaxError: invalid token

0o1000

512

Python 3.x 不等于运算符

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 中对数据类型也做了改动,比如说

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

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

b=b'China'

ype(b)

<type 'bytes'>

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

s=b.decode()

s

'China'

b1=s.encode()

b1

b'China'

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

本次所介绍的只是 Python 3.x 的一部分改动,由于篇幅有限,这里不再具体指出后续感兴趣再写

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一名测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值