在上节中讲到运算符中的算术运算符和赋值运算符,本节将继续介绍比较运算符、逻辑运算符和位运算符
比较运算符:大于> 小于= 小于等于<= 不等于!= 等等于==(注意:=表示赋值)
比较运算符在数字中的使用和平时在数学中学到的并没有特别之处,如下面的例子:
print(3>4)print(2<5)print(5>=1)print(1<=5)print(4!=5)
但是,比较运算符不仅仅能够在数字中使用,同样也可以在字符串中进行使用,比如:
print('a' > 'b')print('abc' > 'b')
可以看到上面的例子比较结果都为False,这是为什么呢?在字符串里又是怎么比较的呢?这就涉及到一个基本的知识点——ASCII编码;我们都知道计算机只能认识0和1,可是我们例子中写到的'a'、'b'、'c'并不是数字,而是字母,怎么办呢?于是便有人设计出了ACSII码表,将a、b、c这些字母用计算机能认识的0和1进行表示:
可以看出a对应的十进制数字为97,而b对应的十进制为98,由此可见97>98并不正确;但是'abc'>'b'为什么结果也是错误的呢?那是因为在字符串的比较运算中,会根据各个字符串的编码逐一进行比较!意思就是我先用a和b进行比较,a>b已经错了,所以就是False。
既然说到a在代表者十进制中的97,那么a能否和97进行比较呢?
print('a' > 97)print('a' == 97)print('a' != 97)
结果发现,在第一行运行发现结果报错,而第二行运行结果却为False,第三行的结果为True;这是因为,在数字和字符串之间,做==运算的结果是False,做!=运算的结果是True,不支持其他的比较运算。
逻辑运算符:逻辑与and 逻辑或or 逻辑非not
与算数运算符不同,每个逻辑运算符对应着各自的规则;
逻辑与:只要有一个运算符是False,结果就是False;
print(2>1 and 4>2 and 10>4)print(2>3 and 5>2 and 7>2)
根据以上结果可以发现,1行中每个运算符都是True,所以结