运算符的优先级 | 学习笔记

简介: 快速学习 运算符的优先级

开发者学堂课程【Python入门 2020年版运算符的优先级】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/639/detail/10257


运算符的优先级


内容介绍:

一、优先级简介

二、需要特殊记忆的运算符

三、逻辑运算符规则


一、优先级简介

1)举例

print10-2*3) 结果是4,有加减和乘除时应先算乘除再算加减。

print (10+2*3**2) 有幂运算时先算幂运算 数学写法是10+2×3^2,应先算3^2,得到9后再运算,结果是28,这些都涉及运算符的优先级问题,优先级非常重要。

2)优先级

除了这些单纯的算术运算符加乘和幂外,还有大于、小于、大于等于、小于等于、不等于、等等于、andornot 等各种运算符(逻辑运算符、比较运算符,位运算符等)。

当它们混在一起时,优先级如下。

**   指数(最高优先级)

+ - 按位翻转,一元加号和减号(最后两个的方法名为+@-@

* / % // 乘,除,取模和取整除

+ -加法减法

>><<  右移,左移运算符

&  ' AND

^ | 位运算符

<= <> >= 比较运算符

<> ==  = 等于运算符

=%=/= //=-=+=*=**= 赋值运算符

is is not 身份运算符

in not in 成员运算符

not>and>or 逻辑运算符

这些优先级每个都是一层。

第一个最高优先级是指数运算,即幂运算。

第二个优先级 第一个符号波浪线是按位取反,是下一级的,涉及到复数的二进制,不做深入了解;第二三个符号是正负号,不是加减,也是一个一元运算符。


二、需要特殊记忆的运算符

1)若从左往右运算

print(True or False and True):True or False 结果为 True, 原式转换为 True and True,于是结果为 True

print(False or not False) not 即取反,not False True,于是结果为 True

print(True or True and False) True or True 结果为 True, 原式转换为 Ture and False,最终结果为 False

2)实际运算

实际运行上述三式后结果为 True, Ture,True. 第三例有优先级的问题须注意,逻辑运算的优先级是 not and or . 从左往右算,是错误的算法。

例一应先算 False and True,再算 True 与它的结果,即先算 and 再算 or.

例三应先算 True and False, 结果为 False, 再算 True or False, 结果为 True。加括号可以提高优先级,若给 True or True 加上括号,则优先运算括号内内容,原式转换为 True and False, 最终结果为 False.

3)括号

在开发中强烈建议使用括号说明运算符的优先级。即使不影响结果按照逻辑加括号也可以方便阅读。


三、逻辑运算符规则

1)逻辑与运算

只要有一个运算数是 False,结果就是 False; 只有所有的运算数都是 True, 结果才是 True.

短路:只要遇到了 False 就停止,不再继续执行。

取值:取第一个为 False, 如果所有的运算数都是 True,取最后一个运算数。

2)逻辑或运算

只要有一个运算数是 True ,结果就是 True ;只有所有的运算数都是 False,结果才是 False.

短路:只要遇到了 True ,就停止,不再继续执行。

取值:取第一个为 True 的值,如果所有的运算数都是 False ,取最后一个运算数。

相关文章
|
8月前
|
C语言 C++
操作符的属性:优先级、结合性(缺表达式求值)
操作符的属性:优先级、结合性(缺表达式求值)
55 0
|
8月前
|
C++
c++运算符的优先级
c++运算符的优先级
140 0
|
8月前
|
Python
运算符的优先级
运算符的优先级
102 2
|
8月前
|
Java
Java程序设计基础—表达式及运算符的优先级
Java程序设计基础—表达式及运算符的优先级
|
存储 Java
Java运算符及运算符的优先级【超详细】
Java运算符及运算符的优先级【超详细】
1515 0
|
8月前
|
JavaScript 前端开发 Java
运算符分为哪几类? 哪些运算符常用作判断?简述运算符的优先级?
运算符分为哪几类? 哪些运算符常用作判断?简述运算符的优先级?
|
8月前
|
C++
关系运算符及其优先次序:编程中的比较逻辑
在编程中,关系运算符是用于比较两个值之间关系的一种重要工具。它们帮助我们根据这些关系(如相等、不等、大于、小于等)来做出决策或执行特定的代码块。理解关系运算符及其优先次序对于编写正确和高效的代码至关重要。
171 0
|
8月前
|
测试技术
leetcode-241:为运算表达式设计优先级
leetcode-241:为运算表达式设计优先级
48 0
|
8月前
|
Go
go语言中的运算符和表达式与对应的优先级
go语言中的运算符和表达式与对应的优先级
121 0

热门文章

最新文章

下一篇
开通oss服务