Skip to content

关系运算符

关系运算符用于比较操作数的值以确定它们之间的关系。Python 中提供了以下关系运算符:

等于

如果左操作数的值与右操作数的值相同,== 运算符返回 True

python
>>> 2 == 2
True
>>> 2 == 3
False

对于像 strlisttuple 这样的序列操作数,如果两个序列完全相同,则结果为 True

python
>>> "python" == "python"
True
>>> "pypi" == "python"
False
>>> [1, 2, 3] == [1, 2, 3]
True

由于序列是项的有序集合,因此项排列的顺序非常重要。

python
>>> [2, 1, 3] == [1, 2, 3]
False

不等于

如果左操作数的值不等于右操作数的值,!= 运算符返回 True

python
>>> 2 != 2
False
>>> 2 != 3
True
>>> 'py' != 'oy'
True
>>> [2, 1, 3] != [1, 2, 3]
True
>>> [1, 2, 3] != [1, 2, 3]
False

大于

如果左操作数的值大于右操作数的值,> 运算符返回 True

python
>>> 3 > 2
True
>>> 2 > 2
False

对于字符串操作数,> 运算符根据每个字符的 Unicode 码点(整数)逐一进行比较。

首先比较两个操作数第一个字符的码点。如果它们相等,则比较两个操作数下一个字符的码点,依此类推。

例如,

python
>>> "python" > "Python"
True

"p" 的码点 (112) 大于 "P" 的码点 (80)。由于 112 大于 80,表达式计算结果为 True

让我们看另一个例子:

python
>>> "pYthon" > "python"
False

第一个字符的码点相同 (112),因此比较下一组字符。"Y" 的码点 (89) 不大于 "y" 的码点 (121),因此表达式计算结果为 False

如果两个字符串操作数 pq 的长度不等(len(p) < len(q))并且 pq 的子串,使得 q = pt,其中 t 是长度大于 0 的任何字符串,则 q > p 返回 True

python
>>> "python" > "py"
True

对于像 listtuple 这样的序列操作数,从索引 0 开始逐项比较。

python
>>> ["p","py","PY"] > ["p","Py","PY"]
True
>>> [1, 3] > [1, 2]
True
>>> [1, 3, 4] > [1, 2]
True

在上面的示例中,"py" 大于 "Py"3 分别大于 2

如果两个序列长度不等,并且较短的序列是较长序列的起始子序列,则认为较长的序列大于较短的序列。

python
>>> [1, 2, 4] > [1, 2]
True

大于或等于

如果左操作数的值大于或等于右操作数的值,>= 运算符返回 True

python
>>> 3 >= 3
True
>>> 2 >= 3
False

对于序列操作数(str, list, tuple),执行的比较操作与上面讨论的 > 运算符类似。

python
>>> "python" >= "Python"
True
>>> "python" >= "python"
True
>>> ["py", "py", "PY"] >= ["py", "Py", "PY"]
True
>>> [1, 2] >= [1, 2]
True
>>> [1, 2, 4] >= [1, 2]
True

小于

如果左操作数的值小于右操作数的值,< 运算符返回 True

python
>>> 2 < 3
True
>>> 3 < 3
False

对于序列操作数(str, list, tuple),执行的比较操作与上面讨论的 > 运算符类似。

python
>>> "file" < "Pile"
False
#f(102) > P(80)
>>> "py" < "python"
True
>>> ["Py", "PY"] < ["py", "PY"]
True
>>> ['a', 2] < ['a', 3]
True
>>> [1, 2] < [1, 2, 4]
True

小于或等于

如果左操作数的值小于或等于右操作数的值,<= 运算符返回 True

python
>>> 2 <= 3
True
>>> 3 <= 3
True

对于序列操作数(str, list, tuple),执行的比较操作与上面讨论的 > 运算符类似。

python
>>> "file" <= "Pile"
False
#f(102) > P(80)
>>> "py" <= "python"
True
>>> ["Py", "PY"] <= ["py", "PY"]
True
>>> ['a', 3] <= ['b', 2]
True
>>> [1, 2] <= [1, 2, 4]
True