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

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

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

相关文章
|
6月前
|
算法 机器人 Python
机器人逆运动学进阶:李代数、矩阵指数与旋转流形计算
本文深入讲解机器人逆运动学中旋转计算的核心数学工具,包括矩阵指数与对数、SO(3)李群与李代数、流形和切空间等概念,帮助理解三维旋转误差计算原理,并提供基于矩阵指数的精确旋转更新方法及代码实现。
369 1
机器人逆运动学进阶:李代数、矩阵指数与旋转流形计算
|
机器学习/深度学习 编解码 算法
深度学习之边缘检测
边缘检测是计算机视觉中的一项基本任务,旨在识别图像中像素值变化显著的区域,即边缘。传统的边缘检测算法(如Sobel、Canny等)通过滤波器和梯度运算来检测边缘,而基于深度学习的方法则通过训练神经网络自动学习图像中的边缘特征,从而实现更高的检测精度和鲁棒性。
759 1
|
负载均衡 算法 大数据
[flink 实时流基础] 转换算子
[flink 实时流基础] 转换算子
466 2
|
弹性计算 数据中心 应用服务中间件
【解决】阿里云香港云服务器需要备案吗?
【解决】阿里云香港云服务器需要备案吗?不需要,香港服务器不需要备案。
1615 0
|
SQL 关系型数据库 MySQL
MySQL数据库——图形化界面工具(DataGrip),SQL(2)-DML(插入、修改和删除数据)
MySQL数据库——图形化界面工具(DataGrip),SQL(2)-DML(插入、修改和删除数据)
1614 1
|
网络协议 数据库 C++
|
数据安全/隐私保护 弹性计算 应用服务中间件
阿里云备案平台企业备案实例全过程
提示1:阿里云备案,一个账号只能备案一个主体,一个主体下可以增加5个网站;如果你有多个域名,想不同的域名备案不同的信息,必须注册多个账号; 提示2:备案前,必须保证服务器环境搭配正常,域名已经绑定服务器IP,我们用域名已经可以访问;如果域名打不开,是不能备案的; 提示3:备案期间网站如果打不开,请.
8016 0
|
Web App开发 Java 关系型数据库
【MySQL】com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago.
11865 0
|
虚拟化 iOS开发 MacOS

热门文章

最新文章