Python支持常见的比较运算符:
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
!= | 不等于 |
== | 等于 |
print(2>1) # 运行结果为:True
注意:一个等号(=)是赋值,两个等号(==)是比较判断两个值是否相等。
在Python中,布尔值可以用and、or和not运算
and(与) | and运算是与运算,只有所有都为True,and运算结果才是True,有一个为False就是Fasle。 |
or (或) |
or运算是或运算,只要其中有一个为True,or运算结果就是True,全为False才是False。 |
not(非) | not运算是非运算,它是一个单目运算符,把True变成False,把False变成True,表示对后面的布尔表达式进行取反运算。 |
使用“in”和“not in”运算符来判断某个对象是否为升序的成员。
# --------in
print("4" in "123456") # 字符串4是否存在于字符串“123456”中,结果为:True
print(1 in (1, 2, 3, 4)) # 元组,结果为:True
print(1 in [1, 2, 3, 4]) # 列表,结果为:True
print("name" in {"name": "Emily"}) # 字典,结果为:True,注意字典只能判断键在不在而不能判断值
# --------not in
print(1 not in (2, 3, 4)) # 1不在元组中,结果为:True
print(1 not in [2, 3, 4]) # 1不在列表中,结果为:True
身份运算符用于比较两个对象的内存地址是否一致——是否对同一个对象的引用。使用“is”和“not is”运算符来判断是否对同一个对象的引用。
a = "Emily"
b = "Hello"
print(a is b) # 结果为:False
print(a is not b) # 结果为:True
c = "Hello"
print(b is c) # 结果为:True
tuple_1 = (1,)
tuple_2 = (1,)
print(tuple_1 is tuple_2) # 结果为:Ture
list_1 = [1]
list_2 = [1]
print(list_1 is list_2) # 结果为:False,因为列表是可变类型,无法这样判断,需要下标来进行判断
print(list_1[0] is list_2[0]) # 结果为:True
dict_1 = {"name": "Emily"}
dict_2 = {"name": "Emily"}
print(dict_1 is dict_2) # 结果为:False
set_1 = {1, 2, 3}
set_2 = {1, 2, 3}
print(set_1 is set_2) # 结果为:False
注意:在使用is和not is时,数字/字符串/元组(不可变数据类型),表面一样,则引用对象也一样。列表/字典/集合(可变数据类型)表面一样,其实不是引用同一个对象。
is与 == 的区别:is 用于判断两个变量引用对象是否为同一个,== 用于判断引用变量的值是否相等。