繁体   English   中英

数学运算顺序

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM