如果在一个状态中发现多个操作,Python如何执行算术操作

2024-04-19 09:14:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要知道Python是如何执行算术运算的。下面我给出了一些问题。请解释一下这背后的概念。你知道吗

why 3+-+--2 = 1
why  3+-+-+--+++2 = 1
why 3-----------2 = 1
why 3--------+2 = 5

Tags: 概念算术why
1条回答
网友
1楼 · 发布于 2024-04-19 09:14:39

在调查这些事情时,从小事做起,从小事做起是有帮助的。如果你一个接一个地尝试这些表达式,很容易看出它是如何工作的:

3-2 = 1
3 2 = 5
3 -2 = 1
3  2 = 5

基本上,第一个操作应用于两个操作数,所有其他+-作为一元操作(分别作为“正”和“负”转换)堆叠在右操作数上。也可以使用~操作(二进制负数)。Python中没有其他的一元运算符,所以只能使用这三种运算符(从技术上讲,abs()也是一元运算符,但它是作为函数调用而不是运算符实现的,所以不能像这样进行堆栈)。你知道吗

在内部,这些操作被解释为对x.__pos__()x.__neg__()x.__invert__()特殊方法的调用。有关详细信息,请参见Python docs关于特殊方法。你知道吗

要了解Python是如何处理这些表达式的,可以将第一个运算符右侧的所有内容都用括号括起来,然后使用标准算术规则计算:

3+-2 = 3+(-2) = 1
3+ 2 = 3+( 2) = 3+(-(-2)) = 3+2 = 5
3 +2 = 3-(-+2) = 3-(-(+2)) = 3-(-2) = 3+2 = 5

当然,如果您发现自己编写了3+ +~+-2这样的表达式,那么您的代码确实有一些问题,但我认为您的问题是理论性的。:-)

相关问题 更多 >