[Python]-5-比较运算

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Python]-5-比较运算相关的知识,希望对你有一定的参考价值。

引言

这篇文章介绍python中的比较运算,比较运算不仅可以用来比较两个数值数据的大小,还能比较字符串或列表的大小。

文章目录

0×1.比较数值数据
0×2.比较列表
0×3.比较字符串

0×1.比较数值数据

数值数据的比较十分简单,如果表达式为真,就返回True,为假就返回False,请看下面的实例:

>>> 1>2
FALSE
>>> 1<2
TRUE
#比较两个数值数据是否相等的时候,需要使用双等号
>>> 1==1
TRUE
>>> 2>=1
TRUE
>>> 2>=2
TRUE
#1不等于2
>>> 1!=2
TRUE

0×2.比较列表

列表的大小比较会逐个比较列表中的元素(相同索引位置的元素进行比较),如果完全相同则返回True,请看下面的实例:

#创建两个列表,第一个元素并不相同
>>> a=["www.qingsword.com","晴刃"]
>>> b=["qingsword.com","晴刃"]

#因为第一个元素不同,所以返回False
>>> print(a==b)
FALSE

#比较运算会逐个比较列表中的元素值,本例中因为b中第一个元素的第一个字符w的ASCII码值要大于a中第一个元素的第一个字符w的ASCII码值,所以答案是False,这在后面的字符串比较中会详细介绍
>>> print(a<b)
FALSE

#下面这个表达式看起来有点复杂,首先a[-1]和b[-1]能够定位到两个列表的最后一个元素(晴刃),[-len(a[-1]):-1]中的len()函数计算这个元素的长度(2),负号会让计数从后往前计算,最后一位是-1,-2则定位到"晴",说明号分片将从-2的位置,取到-1的位置,但不包含-1的位置,所以最后截取出来的就是字符"晴",两个"晴"比较肯定返回True
>>> print(a[-1][-len(a[-1]):-1]==b[-1][-len(a[-1]):-1])
TRUE

>>> b=["www.qingsword.com","晴刃"]
>>> print(a==b)
TRUE

对列表的比较方法同样适用于元组和字典,字典稍微有所不同,在字典中,只要键和值都能匹配,则两个字典相同,不需要键值的索引位置也相同,请看下面的实例:

#虽然a和b字典中键值对的索引位置不同,但每个键和值都在另一个字典中能够匹配到相同的数据,python认为这两个字典是相同的,而列表和元组则需要匹配索引和索引位对应的值
>>> a={1:"a",2:"b",3:"c"}
>>> b={2:"b",3:"c",1:"a"}
>>> print(a==b)
TRUE

>>> c={1:"x",2:"2",3:"three"}
>>> print(a==c)
FALSE

0×3.比较字符串

字符串的比较实际上是ASCII码的比较,在ASCII码中,每个字符都有一个对应的十进制数,请看下面的实例:

#比较单个字符,在ASCII码中,大写字母排列在小写字母之前,大写的A对应的十进制数是65,而小写的a对应的十进制为97,所以表达式为真
>>> print("a">"A")
TRUE
>>> print("a">"b")
FALSE

#多个字符组成的字符串比较大小时,会从索引0的位置开始逐个进行比较,只要碰到一个字符不相等则返回结果,不会再去比较后面的字符(请注意,是逐个比较,而不是将所有字符转换成十进制相加后的比较,大家可以尝试比较bdef和azzz的大小,明显azzz所有字符的十进制相加比bdef大,但是逐个比较时第一个字符a就比b小,所以python会认为bdef比azzz大)
>>> a="abcd"
>>> b="abcd"
>>> c="c"
>>> d="abcdmdzz"
>>> print(a==b)
TRUE
#c和a比较,明显c在ASCII码中对应的十进制数要比a大
>>> print(a<c)
TRUE

#虽然b和d的前4个字符相等,但是d后面还有四个字符,比较到第五个字符的时候,a并没有字符可以比较了,所以python认为d比a大
>>> print(a<d)
TRUE

在字符串比较时,有两个方法比较实用,分别为upper()和lower(),这两个方法能将字符串转换成大写或小写形式,请看下面的实例:

#upper()能将字符串转换成大写,而lower()刚好相反
>>> a="abcd"
>>> b=a.upper()
>>> print(b)
ABCD
>>> c=b.lower()
>>> print(c)
abcd

#有时候字符串中包含大小写形式,而我们只想比较每个字符是否相同,可以将他们都转换成大写或小写形式然后比较他们是否相同
>>> x="www.qingsword.com"
>>> y="WWW.QINGSWORD.COM"
>>> print(x.upper()==y.upper())
TRUE

#最后补充一个not运算符,对结果取反
>>> 1==1
TRUE
>>> not 1==1
FALSE

以上是关于[Python]-5-比较运算的主要内容,如果未能解决你的问题,请参考以下文章

[Python]-5-比较运算

如何在 python 中并行化以下代码片段?

多段实例代码详解7大类Python运算符,建议收藏!

Python3-2020-测试开发-5- 基本运算符和复合运算符

python中运算符都有哪些

Python3 运算符:算术运算符比较运算符赋值运算符位运算符逻辑运算符成员运算符等介绍