课程
/后端开发
/Python
/初识Python
45678and0x12fd2输出77778是什么意思
2018-01-12
源自:初识Python 3-1
正在回答
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 所以取决于后面的
思念像扁桃仁 提问者
>>> 1 and 00>>> 0 and 10>>> 1 or 01>>> 0 or 11
and运算出来是位运算的结果,将45678和0x12fd2化为二进制后末位对其,然后同为1的那一位为1,否则为0,这样最后出来的结果转化成10进制就是77778
举报
学python入门视频教程,让你快速入门并能编写简单的Python程序