如图所示,笔者想比较字符串sStr1和亨蚂擤缚字符串sStr2 ,使用cmp函数规则为:如果 sStr1< sStr2返回 -1, 如果 sStr1== sStr2返回 0, 如果 sStr1> sStr2返回 1。但是在python3.6中使用cmp报错了。那是因为从python3 后已经不使用cmp函数进行比较大小。那么我们想比较字符串sStr1和字符串sStr2该怎么办呢?

工具/原料
python3.6
方案一
1、使用operator,具体用法如下所示:import operator lt(a,b) 相当于 a&造婷用痃lt;b 从第一个数字或字母(ASCII)比大小 le(a,b)相当于a<=b eq(a,b)相当于a==b 字母完全一样,返回True, ne(a,b)相当于a!=b gt(a,b)相当于a>b ge(a,b)相当于 a>=b

2、运行结果如下,返回结果为布尔类型

方案二
1、另一种简便的方法,直接比较大小,先上代码

2、返回的结果为1,这是因为在python中遵循如下规则:True – True = 0True – False = 1False– True = -1False– False = 0在代码中sStr1> sStr2 = True,sStr1< sStr2 = False所以返回结果为1

3、接下来看如果sStr2不属于sStr1的一部分,即sStr2与sStr1没有子属关系,返回结果会是什么样的情况呢?返回结果为1,对照一下规则只有True – False = 1,这是怎么回事呢?这是因为sStr1与sStr2进行的是ASCII比较大小,而不是比较字符串的不同,与方案一中operator包对应
