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

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

开发者学堂课程【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 ,取最后一个运算数。

相关文章
|
1月前
|
C++
c++运算符的优先级
c++运算符的优先级
18 0
|
1天前
|
C语言 C++
操作符的属性:优先级、结合性(缺表达式求值)
操作符的属性:优先级、结合性(缺表达式求值)
7 0
|
10天前
|
JavaScript 前端开发 Java
运算符分为哪几类? 哪些运算符常用作判断?简述运算符的优先级?
运算符分为哪几类? 哪些运算符常用作判断?简述运算符的优先级?
|
7月前
|
存储 Java
Java运算符及运算符的优先级【超详细】
Java运算符及运算符的优先级【超详细】
693 0
|
3月前
|
Go
go语言中的运算符和表达式与对应的优先级
go语言中的运算符和表达式与对应的优先级
33 0
|
3月前
|
测试技术
leetcode-241:为运算表达式设计优先级
leetcode-241:为运算表达式设计优先级
19 0
|
6月前
操作符优先级【表】
操作符优先级【表】
16 0
|
6月前
|
编译器 C语言
操作符的属性,C语言中运算符的优先性和结合性,常见的问题表达式
操作符的属性,C语言中运算符的优先性和结合性,常见的问题表达式
|
8月前
|
JavaScript Java Go
不同语言操作符的优先级
不同语言操作符的优先级
45 1
|
9月前
|
C语言
C语言基础知识:操作符详解(附操作符优先级及结合性一览表)(上)
C语言基础知识:操作符详解(附操作符优先级及结合性一览表)
67 0