- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Python2.x 和 3.x 主要差异总结
开始使用
开始使用 Python 之后就到处宣扬 Python 如何如何好,宣传工作的一大重要诀窍就是做对比,
比如原先用 Java 的时候做个什么东西要写多少代码,怎么个别扭,现在用
Python 实现同样
的功能怎么个简单等等。不过谈 Python ,不管怎么谈,老会谈到 Python2.x 和 3.x 的版本差
异问题,这个差异真不是一般的大,从一个简单的
print 到核心库的改进都牵扯到了很多,现
在总结了一些主要的差异点。
基本类型
(1) 整 形
在 python2.x 中,有两种整数类型,一般的 32 位整数和长整数,长整数都是以
L 或者 l( 不
建议使用小写 l, 容易跟 1 搞混),超过 32 位长度之后会自动转换为长整形。
在 python3.x 中,允许我们更随心所欲更自然的使用整数,只有一种类型,没有长度限制。
python2.x
?
1 1000000000000000000000000000000000
1000000000000000000000000000000000L2
1000000000000000000000000000000000L
python3.x
python3.x
?
1
1 1000000000000000000000000000000
10000000000000000000000000000002
1000000000000000000000000000000
(2) 八进制字面量表示
(2) 八进制字面量表示
在 Python2.x 中,表示八进制字面量有两种方式,一是同众多我们所熟悉的编程语言一样,
直接在数字前加 0,比如 01000, 另外是加 0o(0 和小写字母 o)0o1000
在 Python3.x 中,表示八进制字面量的方式只有一种,就是
0o1000
python2.x
?
1 0o1000
5122
512
010003
01000
5124
512
python3.x
python3.x
?
010001
01000
File stdin, line 12
File stdin, line 1
010003
01000
^4
^
5
5 SyntaxError: invalid token
0o10006
0o1000
5127
512
运算符
不等于测试
Python2.x 中不等于有两种写法 != 和
Python3.x 中去掉了 , 只有!= 一种写法,还好,我从来没有使用 的习惯
去掉了 repr 表达式``
Python2.x 中反引号 `` 相当于 repr 函数的作用
Python3.x 中去掉了 `` 这种写法,只允许使用 repr 函数,这样做的目的是为了使代码看上去更清晰么?不过我感觉用 repr 的机会很少,一般只在 debug 的时候才用,多数时候还是用str 函数来用字符串描述对象。
除法运算
Python 中的除法较其它语言显得非常高端,有套很复杂的规则。 Python 中的除法有两个运算符, /和//
首先来说 /除法:
在 python2.x 中/除法就跟我们熟悉的大多数语言,比如 Java 啊 C 啊差不多,整数相除的结果是一个整数,把小数部分完全忽略掉,浮点数除法会保留小数点的部分得到一个浮点数的
结果。
在 python3.x 中/除法不再这么做了,对于整数之间的相除,结果也会是浮点数。
Python2.x:
Python2.x:
?
1 / 21
1 / 2
02
0
3
3 1.0 / 2.0
0.54
0.5
Python3.x:?
Python3.x:
?
1 1/2
0.52
0.5
而对于//除法,这种除法叫做 floor 除法,会对除法的结果自动进行一个 floor 操作,在 python2.x和 python3.x 中是一致的。
而对于//除法,这种除法叫做 floor 除法,会对除法的结果自动进行一个 floor 操作,在 python2.x
和 python3.x 中是一致的。
python2.x:
?
1 -1 // 2
-12
-1
python3.x:?
python3.x:
?
1 -1 // 2
-12
-1
注意的是并不是舍弃小数部分,而是执行 floor 操作,如果要截取小数部分,那么需要使用 math 模
注意的是并不是舍弃小数部分,而是执行 floor 操作,如果要截取小数部分,那么需要使用 math 模
块的 trunc 函数
python3.x:
python3.x:
?
import math1
import math
math.trunc(
原创力文档


文档评论(0)