if语句中的条件有多种形式,条件表达式是很有意思的一部分。
比较运算符
条件表达式中最基础的是比较运算符,用于进行比较,返回布尔值。
表达式 | 作用 |
x == y | x等于y |
x < y | x小于y |
x > y | x大于y |
x >= y | x大于等于y |
x <= y | x小于等于y |
x != y | x不等于y |
x is y | x和y是同一个对象 |
x is not y | x和y不是同一个对象 |
x in y | x是y中的成员 |
x not in y | x不是y中的成员 |
下面详细介绍其中的一些需要注意的运算符
(一)相等运算符==
相等运算符用于确认两个对象是否相等,用==表示
注意,这里使用的是两个等号。不能使用一个等号。一个等号属于赋值语句,用于赋值。
(二)相同运算符is
is运算符检查两个对象是否相同,
变量a赋值为10,变量b赋值为20,使用is判断是否为同一对象,返回False。
(三)is与==的区别
先看如下的示例
a、b、c三个变量的值为列表[1、2、3],a、b采用链式赋值。使用相等运算符判断变量是否相等,可以看到a、b相等,a、c不等。
此时再用相同运算符is判断三者,结果如下:
a is b的结果是True,但a is c的结果是False
为什么会是这样的情况,我们使用id()函数打印内存地址
a、b采用链式赋值,指向的是同一个列表对象,内存地址相同,变量b指向的是另一个列表对象,所以是不同的内存地址。
在上述例子中,a、b、c三个变量的值都相同(三者的值都为[1,2,3]),所以使用==进行判断,返回结果为True。
a、b两个变量采用链式赋值,指向同一个对象,使用is进行判断,a is b结果为True,但a is c结果为False。
从这里我们可以看到is和==的区别。==用来判断变量的值是否相同,is用来判断变量指向的对象是否相同。
(四)in成员资格运算符
in用于检查特定值是否在序列中。
这个例子中,使用了in运算符,判断输入的字符中有没有包含“中”字。