引言

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

文章目录

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

0×1.比拟数值数据

数值数据的比拟非常简略,如果表达式为真,就返回True,为假就返回False,请看上面的实例:

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

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==1TRUE>>> not 1==1FALSE