ython3中已经不能使用cmp()函数了,被如下五个函数替代:
import operator #首先要导入运算符模块
operator.gt(1,2) #意思是greater than(大于)
operator.ge(1,2) #意思是greater and equal(大于等于)
operator.eq(1,2) #意思是equal(等于)
operator.le(1,2) #意思是less and equal(小于等于)
operator.lt(1,2) #意思是less than(小于)
即使用上面五个英文缩写作为函数名:
这里写图片描述
python3中替换python2中cmp函数的新函数分析(lt、le、eq、ne、ge、gt)
在python2中我们经常会使用cmp函数来比较一些东西,但是在python3中,你再来使用这个函数的时候,发现就报错了,提示找不到这个函数,这是为啥呢?嗯,新版的Python已经舍弃之。
在python3中使用时报错信息如下:
[python] view plain copy
Syntax Error: if cmp(os.getcwd(), os.path.dirname(os.sys.argv[0])) <> 0:: Test.py, line 34055
提示找不到cmp函数了,那么在python3中该如何使用这个函数呢?
看python的帮助文档,在oprater这个模块中有了这么几个函数
[python] view plain copy
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不再支持cmp()函数,取而代之的是operator模块中的lt、le、eq、ne、ge、gt六个函数。这些函数分别对应小于、小于等于、等于、不等于、大于等于和大于的关系判断,返回值为数值而非布尔类型,类似于Python2的cmp函数。
761

被折叠的 条评论
为什么被折叠?



