python3.6使用字符串比较cmp时报错处理方案

 时间:2024-10-12 21:09:36

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

python3.6使用字符串比较cmp时报错处理方案

工具/原料

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

python3.6使用字符串比较cmp时报错处理方案

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

python3.6使用字符串比较cmp时报错处理方案

方案二

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

python3.6使用字符串比较cmp时报错处理方案

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

python3.6使用字符串比较cmp时报错处理方案

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

python3.6使用字符串比较cmp时报错处理方案
  • 如何用matlab对函数求傅立叶变换
  • C语言怎么定义变量
  • Z变换定义以及怎样进行Z变换?
  • keil根据程序计算延迟函数的时间长度,keil调试
  • 幅频特性曲线怎么画?
  • 热门搜索
    欧美人性生活 明天是什么日子 李老汉的性生生活 淘宝直通车怎么用 如何买保险 如何写简历范文 如何申请公积金贷款 high是什么意思 嘴唇干裂脱皮是什么原因 干将莫邪的热恋生活