首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么(0>1 + 0>9)返回False,但((0>1) + (0>9))返回0?

这个问题涉及到Python中的布尔运算和数值运算的优先级。在Python中,布尔运算的优先级高于数值运算。

首先,我们来分析表达式(0>1 + 0>9)的计算过程:

  1. 首先,根据数值运算的优先级,计算1 + 0,结果为1。
  2. 然后,根据布尔运算的优先级,计算0 > 9,结果为False。
  3. 最后,根据数值运算的优先级,计算1 + False,结果为1。

所以,表达式(0>1 + 0>9)的结果为1。

接下来,我们来分析表达式((0>1) + (0>9))的计算过程:

  1. 首先,根据布尔运算的优先级,计算0 > 1,结果为False。
  2. 然后,根据布尔运算的优先级,计算0 > 9,结果为False。
  3. 最后,根据数值运算的优先级,计算False + False,结果为0。

所以,表达式((0>1) + (0>9))的结果为0。

综上所述,(0>1 + 0>9)返回1,而((0>1) + (0>9))返回0。这是因为在Python中,布尔运算的优先级高于数值运算,所以在第一个表达式中,先进行了数值运算,而在第二个表达式中,先进行了布尔运算。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C语言位运算符

对于更多紧凑的数据,C 程序可以用独立的位或多个组合在一起的位来存储信息。文件访问许可就是一个常见的应用案例。位运算符允许对一个字节或更大的数据单位中独立的位做处理:可以清除、设定,或者倒置任何位或多个位。也可以将一个整数的位模式(bit pattern)向右或向左移动。 整数类型的位模式由一队按位置从右到左编号的位组成,位置编号从 0 开始,这是最低有效位(least significant bit)。例如,考虑字符值'*',它的 ASCII 编码为 42,相当于二进制的 101010: 位模式 0 0 1 0 1 0 1 0 位位置 7 6 5 4 3 2 1 0 在本例中,值 101010 被表示成一个 8 位的字节内容,因此前面多两个 0。

03
领券