如果表达式的操作符有相同的优先级,则运算符优先级规则是从左到右还是从右到左

你所编写的大多数语句(逻辑行)都包含了表达式(Expressions)一个表达式的简单例子便是 2+3。表达式可以拆分成运算符优先级符(Operators)与操作数(Operands)
运算符优先级符(Operators)是进行某些操作,并且可以用诸如 + 等符号或特殊关键词加以表达的功能运算符优先级符需要一些数据来进行操作,这些数据就被称作操作数(Operands)在上面的例子中 2 和 3 就是操作数。

接下来我们将简要了解各类运算符优先级符及它们的用法
要记得你可以随时在解释器中对给出的案例里的表达式进行求值。例如要想测试表达式 2+3则可以使用交互式 Python 解释器提示符:

下面是可用运算符优先级符的速览:

》從一个数中减去另一个数,如果第一个操作数不存在则假定为零。

》返回 x 是否大于 y
》5 > 3 返回 True。如果两个操作数均为数字它们首先将会被转换至一种共同的类型。否则它将总是返回 False。

not (布尔“非”)

and (布尔“与”)

数值运算符优先级與赋值的快捷方式

一种比较常见的操作是对一个变量进行一项数学运算符优先级并将运算符优先级得出的结果返回给这个变量因此对于這类运算符优先级通常有如下的快捷表达方式:

要注意到 变量 = 变量 运算符优先级 表达式 会演变成 变量 运算符优先级 = 表达式。

如果你有一个諸如 2 + 3 * 4 的表达式是优先完成加法还是优先完成乘法呢?我们的高中数学知识会告诉我们应该先完成乘法这意味着乘法运算符优先级符的優先级要高于加法运算符优先级符。

下面将给出 Python 中从最低优先级(最少绑定)到最高优先级(最多绑定)的优先级表这意味着,在给定嘚表达式中Python 将优先计算表中位列于后的较高优先级的运算符优先级符与表达式。

为了保持完整下表是从 Python 参考手册 中引用而来。你最好使用圆括号操作符来对运算符优先级符与操作数进行分组以更加明确地指定优先级。这也能使得程序更加可读你可以阅读改变运算符優先级顺序来了解更多的细节。

我们还没有遇到的运算符优先级符将在后面的章节中加以解释
在上表中位列同一行的运算符优先级符具囿相同优先级。例如 + 和 – 就具有相同的优先级

为了使表达式更加易读,我们可以使用括号举个例子,2 + (3 * 4) 自是要比 2 + 3 * 4 要更加容易理解因为後者还要求你要了解运算符优先级符的优先级。和其它的一切一样使用括号同样也要适度(而不要过度),同时亦应不要像 (2 + (3 * 4)) 这般冗余
使用括号还有一个额外的优点——它能帮助我们改变运算符优先级的顺序。同样举个例子如果你希望在表达式中计算乘法之前应先计算加法,那么你可以将表达式写作 (2 + 3) * 4

运算符优先级符通常由左至右结合。这意味着具有相同优先级的运算符优先级符将从左至右的方式依次进行求值如 2 + 3 + 4 将会以 (2 + 3) +4 的形式加以计算。

矩形的长度(Length)与宽度(Breadth)存储在以各自名称命名的变量中我们使用它们并借助表達式来计算矩形的面积(Area)与周长(Perimeter)。我们将表达式 length * breadth 的结果存储在变量 area 中并将其通过使用 print 函数打印出来在第二种情况中,我们直接在 print 函数中使用了表达式 2 * (length + breadth)

同时你需要注意到 Python是如何漂亮地打印出 输出结果的。尽管我们没有特别在 Area is 和变量 area 之间指定空格Python 会帮我们加上所以峩们就能得到一个整洁的输出结果,同时程序也因为这样的处理方式而变得更加易读(因为我们不需要在用以输出的字符串中考虑空格问題)这便是一个 Python 是如何让程序员的生活变得更加便捷美好的范例。

我们已经了解了如何使用运算符优先级符、操作数与表达式——這些是我们构建任何程序的基本块接下来,我们将看到如何在程序中善加利用这些语句

C++运算符优先级符优先级列表

如有侵权部分请联系我删除。

未经博主允许不准转载此文章!

发布了25 篇原创文章 · 获赞 7 · 访问量 2万+

运算符优先级符优先级指定了两個表达式绑定得有多“紧密”例如,表达式 1 + 5 * 3 的结果是 16 而不是 18 是因为乘号(“*”)的优先级比加号(“+”)高必要时可以用括号来强制妀变优先级。例如:(1 + 5) * 3 的值为 18如果运算符优先级符优先级相同,则使用从左到右的左联顺序

下表从高到低列出了运算符优先级符的优先級。同一行中的运算符优先级符具有相同优先级此时它们的结合方向决定求值顺序。

左联表示表达式从左向右求值右联相反。

尽管 = 比其它大多数的运算符优先级符的优先级低PHP 仍旧允许类似如下的表达式:if (!$a = foo()),在此例中 foo() 的返回值被赋给了 $a


本站是提供个人知识管理的网络存储空间,所有内容均由用户发布不代表本站观点。如发现有害或侵权内容请点击这里 或 拨打24小时举报电话: 与我们联系。

我要回帖

更多关于 运算符优先级 的文章

 

随机推荐