Python - 比较运算符


Python 比较运算符

Python 比较运算符(Python Comparison Operators), Python 条件语句if、else 和 elif)和循环语句while for 循环)非常重要。比较运算符也称为关系运算符。一些众所周知的运算符是 “<” 代表小于,“>” 代表大于运算符。

Python 使用另外两个运算符,将 “=” 符号与这两个运算符组合在一起。“<=”符号表示小于或等于运算符,“>=”符号表示大于或等于运算符。

Python 不同比较运算符

Python 还有两个比较运算符,分别是 “==” 和 “!=”。它们是 for 等于 和 不等于 运算符。因此,Python 中有六个比较运算符,下表列出了它们:

< 小于 a<b
> 大于 >b
<= 小于或等于 a<=b
>= 大于或等于 a>=b
== 等于 a==b
!= 不等于 a!=b

比较运算符本质上是二进制的,需要两个操作数。涉及比较运算符的表达式称为布尔表达式,并且始终返回 True 或 False。

例子


a=5
b=7
print (a>b)
print (a<b)

将产生以下输出 -

False
True

这两个操作数都可以是 Python 文本变量或表达式。由于 Python 支持混合算术,因此您可以拥有任何数字类型的操作数。

例子

以下代码演示了 Python 的比较运算符与整数的用法 -


print ("Both operands are integer")
a=5
b=7
print ("a=",a, "b=",b, "a>b is", a>b)
print ("a=",a, "b=",b,"a<b is",a<b)
print ("a=",a, "b=",b,"a==b is",a==b)
print ("a=",a, "b=",b,"a!=b is",a!=b)

它将产生以下输出 -

Both operands are integer
a= 5 b= 7 a>b is False
a= 5 b= 7 a<b is True
a= 5 b= 7 a==b is False
a= 5 b= 7 a!=b is True

浮点数比较

在下面的示例中,将比较整数和浮点操作数。


print ("int和float的比较")
a=10
b=10.0
print ("a=",a, "b=",b, "a>b is", a>b)
print ("a=",a, "b=",b,"a<b is",a<b)
print ("a=",a, "b=",b,"a==b is",a==b)
print ("a=",a, "b=",b,"a!=b is",a!=b)

将产生以下输出 -

int和float的比较
a= 10 b= 10.0 a>b is False
a= 10 b= 10.0 a<b is False
a= 10 b= 10.0 a==b is True
a= 10 b= 10.0 a!=b is False

complex 比较

尽管 complex 对象在 Python 是一种数字数据类型,但它的行为与 别人。Python 不支持 < 和 > 运算符,但它支持相等 (==) 和不等式 (!=) 运算符。


print (complex numbers的比较")
a=10+1j
b=10.-1j
print ("a=",a, "b=",b,"a==b is",a==b)
print ("a=",a, "b=",b,"a!=b is",a!=b)

将产生以下输出 -

complex numbers的比较
a= (10+1j) b= (10-1j) a==b is False
a= (10+1j) b= (10-1j) a!=b is True

您得到的 TypeError 运算符小于或大于。

例子


print ("complex numbers的比较")
a=10+1j
b=10.-1j
print ("a=",a, "b=",b,"a<b is",a<b)
print ("a=",a, "b=",b,"a>b is",a>b)

它将产生以下输出 -

complex numbers的比较
Traceback (most recent call last):
File "C:\Users\mlath\examples\example.py", line 5, in <module>
print ("a=",a, "b=",b,"a<b is",a<b)
^^^
TypeError: '<' not supported between instances of 'complex' and
'complex

布尔值比较

Python 布尔对象实际上是整数:True 为 1,False 为 0。事实上,Python 将任何非零数字视为 True。Python 可以比较 Boolean 对象。“False < True” 是真的!


print ("Booleans的比较")
a=True
b=False
print ("a=",a, "b=",b,"a<b is",a<b)
print ("a=",a, "b=",b,"a>b is",a>b)
print ("a=",a, "b=",b,"a==b is",a==b)
print ("a=",a, "b=",b,"a!=b is",a!=b)

它将产生以下输出 -

Booleans的比较
a= True b= False a<b is False
a= True b= False a>b is True
a= True b= False a==b is False
a= True b= False a!=b is True

序列类型比较

Python 只能执行相似序列对象的比较。一个字符串对象仅与另一个字符串比较。列表 不能与 元组 比较,即使两者都具有相同的项目。

例子


print ("不同序列类型的比较")
a=(1,2,3)
b=[1,2,3]
print ("a=",a, "b=",b,"a<b is",a<b)

它将产生以下输出 -

不同序列类型的比较
Traceback (most recent call last):
File "C:\Users\mlath\examples\example.py", line 5, in <module>
print ("a=",a, "b=",b,"a<b is",a<b)
^^^
TypeError: '<' not supported between instances of 'tuple' and 'list'

序列对象通过字典排序机制进行比较。比较从第 0 个索引的 item 开始。如果它们相等,则比较移动到下一个索引,直到某个索引处的项目恰好不相等,或者其中一个序列用尽。如果一个序列是另一个序列的初始子序列,则较短的序列是较小的序列。

哪个操作数更大取决于索引中不相等的项的值之差。例如,'BAT'>'BAR' 为 True,因为 T 在 Unicode 顺序中位于 R 之后。

如果两个序列的所有项的比较相等,则认为这两个序列相等。

例子


print ("字符串比较")
a='BAT'
b='BALL'
print ("a=",a, "b=",b,"a<b is",a<b)
print ("a=",a, "b=",b,"a>b is",a>b)
print ("a=",a, "b=",b,"a==b is",a==b)
print ("a=",a, "b=",b,"a!=b is",a!=b)

它将产生以下输出 -

字符串比较
a= BAT b= BALL a<b is False
a= BAT b= BALL a>b is True
a= BAT b= BALL a==b is False
a= BAT b= BALL a!=b is True

在下面的示例中,比较了两个元组对象 -

例子


print ("元组的比较")
a=(1,2,4)
b=(1,2,3)
print ("a=",a, "b=",b,"a<b is",a<b)
print ("a=",a, "b=",b,"a>b is",a>b)
print ("a=",a, "b=",b,"a==b is",a==b)
print ("a=",a, "b=",b,"a!=b is",a!=b)

它将产生以下输出 -

a= (1, 2, 4) b= (1, 2, 3) a<b is False
a= (1, 2, 4) b= (1, 2, 3) a>b is True
a= (1, 2, 4) b= (1, 2, 3) a==b is False
a= (1, 2, 4) b= (1, 2, 3) a!=b is True

字典对象比较

未定义 Python 字典的 “<” 和 “>” 运算符的使用。在这些情况下 操作数,TypeError: '<' 在 'dict' 和 'dict' 的实例之间不受支持。

相等比较检查两个 dict 项的长度是否相同。字典长度是其中的键值对数。

Python 词典 只是按长度进行比较。元素较少的字典被认为小于元素较多的字典。

例子


print ("词典对象比较")
a={1:1,2:2}
b={2:2, 1:1, 3:3}
print ("a=",a, "b=",b,"a==b is",a==b)
print ("a=",a, "b=",b,"a!=b is",a!=b)

它将产生以下输出 -

词典对象比较
a= {1: 1, 2: 2} b= {2: 2, 1: 1, 3: 3} a==b is False
a= {1: 1, 2: 2} b= {2: 2, 1: 1, 3: 3} a!=b is True