【问题标题】:How operator precedence works between % and //?运算符优先级在 % 和 // 之间如何工作?
【发布时间】:2020-11-14 16:18:45
【问题描述】:
5 % 4 // 6 % 3    

o/p 为 0,但根据运算符优先级,它应该引发 ZeroDivisionError,因为它应该被解释为

5 % 0 % 3 

导致错误

有人可以详细说明运算符优先级在这里是如何工作的吗?

【问题讨论】:

标签: python python-3.x operators modulus floor-division


【解决方案1】:
5 % 4 // 6 % 3 

只计算从左到右 所以

5%4 = 1
1//6 = 0
0%3 = 0

它们都处于相同的优先级 https://docs.python.org/3/reference/expressions.html#operator-precedence

【讨论】:

    【解决方案2】:

    从左到右。如果您更改代码:

    (5 % 4) // (6 % 3)
    

    它引发ZeroDivisionError ,因为括号优先。如果你不放括号,它只是从左到右。

    【讨论】:

      猜你喜欢
      • 2011-06-21
      • 2020-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-29
      • 2013-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多