[英]Order of Operation Mathematical
编程新手,在做工作表时遇到了这个:
x = 1 / 2 + 3 // 3 + 4 ** 2
x
是什么?
我读到了关于指数的内容,你必须从右到左阅读,我这样做了,尽管答案应该是 17.5,但由于某种原因我一直得到 0。 任何关于为什么/如何我应该得到 17.5 以及我应该解决它的顺序的帮助将不胜感激。 谢谢。
使用Python,结果是17.5
您可以在 python (Python Operator Precedence) 中检查数学运算符的顺序以获取更多信息
(1 / 2) + (3 // 3) + (4 ** 2) = 0.5 + 1 + 16
参考: https : //www.mathcs.emory.edu/~valerie/courses/fall10/155/resources/op_precedence.html
要确定此表达式的优先顺序,请记住以下规则(非详尽无遗):
1 + 2 / 3
被评估为1 + (2 / 3)
)1 / 2**4
被评估为1 / (2**4)
)这些规则共同向我们展示了这个表达式:
x = 1 / 2 + 3 // 3 + 4 ** 2
将被评估为:
x = (1 / 2) + (3 // 3) + (4 ** 2)
因此,x = 0.5 + 1 + 16 = 17.5。
运算符优先级在 Python 文档中定义:
https://docs.python.org/3/reference/expressions.html#operator-precedence
因此, **
具有最高优先级,然后是/
和//
,然后是+
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.