python字符串进行位运算_Python——比较运算符、逻辑运算符和位运算

本文介绍了Python中的比较运算符、逻辑运算符和位运算符。在字符串比较中,比较的是ASCII编码值;逻辑运算符遵循特定规则,如逻辑与“全真则真,有假则假”,逻辑或“全假则假,有真则真”;位运算符包括按位与、按位或、按位异或、按位左移和按位右移,所有计算基于二进制进行。位运算符在计算机内部以补码形式进行计算,负数的位取反运算涉及到原码、反码和补码的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在上节中讲到运算符中的算术运算符和赋值运算符,本节将继续介绍比较运算符、逻辑运算符和位运算符

比较运算符:大于>    小于=    小于等于<=    不等于!=    等等于==(注意:=表示赋值)

比较运算符在数字中的使用和平时在数学中学到的并没有特别之处,如下面的例子:

print(3>4)print(2<5)print(5>=1)print(1<=5)print(4!=5)

e9f27ba85db7a5bab4a17956cf80aa29.png

但是,比较运算符不仅仅能够在数字中使用,同样也可以在字符串中进行使用,比如:

print('a' > 'b')print('abc' > 'b')

aadcc89258d694d9d3b3e7b286621a78.png

可以看到上面的例子比较结果都为False,这是为什么呢?在字符串里又是怎么比较的呢?这就涉及到一个基本的知识点——ASCII编码;我们都知道计算机只能认识0和1,可是我们例子中写到的'a'、'b'、'c'并不是数字,而是字母,怎么办呢?于是便有人设计出了ACSII码表,将a、b、c这些字母用计算机能认识的0和1进行表示:

8db625042964b6ecd7457ee483e1f504.png

可以看出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)

9bd75a3267af4cfc8b4d9b4ceda3c3f0.png

根据以上结果可以发现,1行中每个运算符都是True,所以结果为True;2行中2>3为False,那么结果为False;即“全真则真,有假则假

逻辑或:只要有一个运算符是True,结果就是True

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值