[Python]-6-比较运算

引言

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

文章目录

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