Python中的0 - 5% 2和-5% 2有什么区别

taor4pac  于 2023-11-20  发布在  Python
关注(0)|答案(1)|浏览(259)

Python文档指出:
模运算符总是产生与第二个操作数(或零)符号相同的结果
在Python中,

>>> - 5 % 2 
>>> 1

字符串
但当我在它前面加上0时,

>>> 0 - 5 % 2 
>>> - 1


是因为表示负数和减法时负号不同吗?怎么区分?

zzoitvuj

zzoitvuj1#

您看到的行为可以根据运算符优先级来解释:

- 5 % 2

字符串
这里5前面的负号表示否定,它的优先级比%高,所以这个表达式的计算结果是:

(-5) % 2 = 1


这同样适用于第二个表达式:

0 - 5 % 2


这里,0和5之间的负号表示减法,它的优先级低于%,因此此表达式的计算结果为:

0 - (5 % 2) = 0 - 1 = -1

相关问题