官方python3.x所做的一些更改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了官方python3.x所做的一些更改相关的知识,希望对你有一定的参考价值。

在python3.x中,raw_input已经删除掉,只能使用input

print "hello world!" 已经不能这样编写,如果在3.x中这样使用print,将导致错误返回。在3.x中使用的规范是这样。 print(...),要加上括号。

在python 3.x中,已经删除cmp内建函数。如果在3.x中想表示类似的代码cmp(a,b)。只能这样写(a>b)-(a<b)替代。

或是导入模块operator来代替cmp。

以下是自己在网上进行搜索查询,找到的关于在3.x中替代cmp的一些参考,资料来源:http://blog.csdn.net/zhuhai__yizhi/article/details/77644915

在没有导入模块情况下,会出现下面的情况:

技术分享提示找不到cmp函数了,那么在python3中该如何使用这个函数呢?

所以要导入模块operator。

技术分享看python的帮助文档,在oprater这个模块中有了这么几个函数:

operator.lt(a, b) 
operator.le(a, b) 
operator.eq(a, b) 
operator.ne(a, b) 
operator.ge(a, b) 
operator.gt(a, b) 
operator.__lt__(a, b) 
operator.__le__(a, b) 
operator.__eq__(a, b) 
operator.__ne__(a, b) 
operator.__ge__(a, b) 
operator.__gt__(a, b) 

这几个函数就是用来替换之前的cmp的,之前使用cmp的同胞们,咱们以后就换上面这些函数咯。
先简单说下这几个函数的意思吧。
lt(a, b) 相当于 a < b
le(a,b) 相当于 a <= b
eq(a,b) 相当于 a == b
ne(a,b) 相当于 a != b
gt(a,b) 相当于 a > b
ge(a, b)相当于 a>= b
函数的返回值不是布尔哦。这点需要注意,还是跟cmp一样返回的是数值哦。

我使用的是python3.6.2版本,在cmd中的python交互模式下进行如下代码测试。

import operator
str1="a"
str2="b"
print(operator.eq(str1,str2))

输出结果为:

False

发现输出的还是布尔值。























以上是关于官方python3.x所做的一些更改的主要内容,如果未能解决你的问题,请参考以下文章

C++ 中线程所做的更改

如何丢弃对分支所做的所有更改?

Xcode:他的第一个视图没有看到第二个视图所做的更改

如何禁用 Link/href 所做的 css 更改

python3自动安装脚本,python3.x与python2.x共存

Git:仅合并在分支上所做的更改