为了账号安全,请及时绑定邮箱和手机立即绑定

45678+0x12fd2和45678and0x12fd2的输出结果怎么解释啊?

45678and0x12fd2输出77778是什么意思

正在回答

3 回答

and 和 or 运算的一条重要法则:短路计算。

1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。

2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。

所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。

因为45678为非空字符串  所以前面判断为True  所以取决于后面的

3 回复 有任何疑惑可以回复我~
#1

思念像扁桃仁 提问者

非常感谢!
2018-01-17 回复 有任何疑惑可以回复我~

>>> 1 and 0
0
>>> 0 and 1
0
>>> 1 or 0
1
>>> 0 or 1
1



0 回复 有任何疑惑可以回复我~

and运算出来是位运算的结果,将45678和0x12fd2化为二进制后末位对其,然后同为1的那一位为1,否则为0,这样最后出来的结果转化成10进制就是77778

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758623    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

45678+0x12fd2和45678and0x12fd2的输出结果怎么解释啊?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信