关于python:Python5比较运算

8次阅读

共计 2009 个字符,预计需要花费 6 分钟才能阅读完成。

引言

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