Quantcast
Channel: CodeSection,代码区,Python开发技术文章_教程 - CodeSec
Viewing all articles
Browse latest Browse all 9596

[Python]-6-比较运算

$
0
0
引言

这篇文章介绍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


Viewing all articles
Browse latest Browse all 9596

Trending Articles