Ben*_*ank 9 python operator-precedence
我被以下情况所困扰:
>>> -1 ** 2
-1
Run Code Online (Sandbox Code Playgroud)
现在,通过Python文档挖掘,很明显这是预期的行为,但为什么呢? 我没有使用任何其他语言作为内置运算符的权力,但没有尽可能紧密的一元否定绑定似乎对我来说是危险的反直觉.
有没有理由这样做?功率运算符的其他语言是否表现相似?
nos*_*klo 22
这种行为与数学公式相同,所以我不确定问题是什么,或者为什么它是反直觉的.你能解释一下你在哪里看到不同的东西吗?"**"总是绑定多于" - ": - x ^ 2与(-x)^ 2不同
只需使用(-1)**2,就像在数学中一样.
简短回答:这是数学中优先级的标准工作方式。
假设我想计算多项式 3x 3 - x 2 + 5。
def polynomial(x):
return 3*x**3 - x**2 + 5
Run Code Online (Sandbox Code Playgroud)
它看起来比...
def polynomial
return 3*x**3 - (x**2) + 5
Run Code Online (Sandbox Code Playgroud)
第一种方法是数学家的做法。其他具有幂运算的语言的工作方式相同。请注意,否定运算符的绑定也比乘法更松散,因此
-x*y === -(x*y)
Run Code Online (Sandbox Code Playgroud)
这也是他们在数学中的做法。
| 归档时间: |
|
| 查看次数: |
486 次 |
| 最近记录: |