
上QQ阅读APP看书,第一时间看更新
2.4.2 关系运算符和关系表达式
关系表达式是指用关系运算符将两个表达式连接起来的式子(例如a+b>0),表达式中可以包含变量、算术表达式、字符串表达式和函数。关系运算符又称比较运算符,用来对两个表达式的值进行比较,比较的结果是一个布尔值(True或False),这个结果就是关系表达式的值。
1.关系运算符
Python提供的关系运算符有以下6种,见表2-5。假设表中变量a为10,变量b为20,运算结果为bool类型(True或者False)。
表2-5 关系运算符

2.关系表达式
关系表达式的格式为:

说明:
1)所有关系运算符的运算级别相同。
2)关系运算符两侧可以是数值表达式、字符型表达式,也可以是作为表达式特例的变量或函数,但其两侧的数据类型必须一致。
3)在没有圆括号的情况下,关系表达式的运算次序为:先进行算术或函数运算,再进行比较。即先分别求出关系运算符两侧表达式的值,然后再把两者进行比较,两者的关系若与关系运算符指示的一样,则关系运算的结果为真(True),否则为假(False)。
4)除整数、浮点数、字符串可以直接比较外,其他类型的值之间不能直接比较。
5)复数不能比较大小,只能比较是否相等。
6)不要对浮点数进行等于“==”比较,例如,1.0/3.0*3.0==1.0。在数学上该表达式为恒等式。但在计算机上运算时,浮点数的误差将造成不相等。可以把上式改为只要它们小于一个很小的数时(这里是10-5),就认为它们相等:

7)Python允许a<x<=b这样的链式比较,它相当于(a<x)and(x<=b)。
8)字符型数据按其ASCII码值进行比较。在比较两个字符串时,首先比较两个字符串的第一个字符,其中ASCII码值较大的字符所在的字符串大。如果第一个字符相同,则比较第二个字符,依此类推。常见字符值的大小关系如下:
