1.比较运算符
表达式 | 描述 |
---|---|
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的成员 |
和赋值一样,Python也支持链式比较。如0<a<9
2.相等运算符(==)
确定两个对象是否相等,要使用相等运算符。用两个等号表示(==)
>>>'6'=='9'
False
>>>'6'=='6'
True
为什么不使用一个等号呢?那是因为一个等号是赋值运算符,用于修改值。
3.相同运算符(is)
这个运算符看似和‘==’一样,但实际作用有一些差别。
is检查两个对象是否相同(而不是相等)
>>>x=[1,2]
>>>y=[1.2]
>>>x is y
False
>>>x==y
True
通过上面的的例子,我们很清晰的看出了’is’和‘==’的不同之处。
4.成员资格运算符(in)
检测条件(if后面)是否存在目标对象中。然后执行符合条件的代码。
name=input('你的名字是?')
if '黎' in name:
print('你的名字中含有"黎"')
else:
print('你的名字不含有"黎"')
5.布尔运算符(and)
and是一个布尔运算符,它接受两个真值,并在这两个值都为真时返回真,否则返回假。
or和not都是布尔运算符。使用这三个运算符,能以任何方式组合真值。
number=int(input('判断一个数字是否存在于1和10之间:'))
if number<=10 and number>=1:
print('存在')
else:
print('不存在')
也可以将number<=10 and number>=1换成链式比较(1<=number<=10)的形式。
进一步简化了代码块。
布尔运算符的特征:只做必要的运算。例如:仅当x y都为真时,表达式x and y才为真,因此若x为假,则表达式立马返回假,而不关心y。但实际上,若x为假,表达式会返回x,否则返回y。这种行为被称为短路逻辑(或延迟求职)
布尔运算符也被称为逻辑运算符。例如:x or y这个表达式,当x为真时,就返回x,否则返回y。
6.字符串和序列的比较
字符串是根据字符的字母排列顺序进行比较的,由于字母都是Unicode字符,它们是按码点排列的。而实际上,字符是按照顺序值排列的。要获悉字母的顺序值,可通过函数ord。ord作用和函数chr相反。
>>>ord('北')
21271
>>>chr(21271)
'北'
但是当涉及到大写字母时,排列顺序可能就不是你想要的结果。
>>>'a'<'D'
False
一个解决方法是忽略大小写,可使用字符串方法lower。
>>>'a'.lower()<'D'.lower()
True
其他序列的比较方式与此相同,序列的元素为其他序列时,规则同样适用。
>>>[1,2]<[1,2,3]
True
>>>[1,2]<[2,1]
True
>>>[1,2,3,[45]]<[1,2,3,[456]]
True