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

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

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

相关文章
|
存储 API Python
FastAPI(24)- 详解 File,上传文件
FastAPI(24)- 详解 File,上传文件
1340 0
FastAPI(24)- 详解 File,上传文件
|
7月前
|
人工智能 自然语言处理 数据可视化
DeepSeek使用终极指南:解锁国产大模型的隐藏实力
DeepSeek作为国产大语言模型的佼佼者,支持多模态交互,在编码、数学和逻辑推理等方面表现卓越。本文从基础操作到进阶技巧全面解析其高效使用方法,涵盖精准提问法则、文件交互技巧、高级指令应用等,并提供智能客服、数据分析、教育培训等典型场景实战案例。同时提醒用户注意提问禁忌与安全规范,帮助开发者和普通用户充分挖掘DeepSeek的潜能,提升工作效率,探索智能解决方案。
593 0
|
机器学习/深度学习 编解码 算法
深度学习之边缘检测
边缘检测是计算机视觉中的一项基本任务,旨在识别图像中像素值变化显著的区域,即边缘。传统的边缘检测算法(如Sobel、Canny等)通过滤波器和梯度运算来检测边缘,而基于深度学习的方法则通过训练神经网络自动学习图像中的边缘特征,从而实现更高的检测精度和鲁棒性。
482 1
|
负载均衡 算法 大数据
[flink 实时流基础] 转换算子
[flink 实时流基础] 转换算子
249 2
|
10月前
|
消息中间件 Java 中间件
MQ四兄弟:如何保证消息可靠性
本文介绍了RabbitMQ、RocketMQ、Kafka和Pulsar四种消息中间件的可靠性机制。这些中间件通过以下几种方式确保消息的可靠传输:1. 消息持久化,确保消息在重启后不会丢失;2. 确认机制,保证消息从生产者到消费者都被成功处理;3. 重试机制,处理失败后的重试;4. 死信队列,处理无法消费的消息。每种中间件的具体实现略有不同,但核心思想相似,都是从生产者、中间件本身和消费者三个角度来保障消息的可靠性。
409 0
|
SQL 关系型数据库 MySQL
MySQL数据库——图形化界面工具(DataGrip),SQL(2)-DML(插入、修改和删除数据)
MySQL数据库——图形化界面工具(DataGrip),SQL(2)-DML(插入、修改和删除数据)
1285 1
|
机器学习/深度学习 自然语言处理 人机交互
|
域名解析 安全 网络安全
使用Python自动检测SSL证书是否过期
使用Python自动检测SSL证书是否过期
475 0
|
数据可视化 物联网 程序员
使用webgl(three.js)搭建一个3D智慧园区、3D建筑,3D消防模拟,web版3D,bim管理系统——第四课(炫酷版一)
3d建筑,3d消防,消防演习模拟,3d库房,3d档案室,3d密集架,webGL,threejs,3d机房,bim管理系统
5970 0
|
供应链 前端开发 数据管理
基于Springboot+Vue开发前后端端分离农产品进销存系统
农产品进销存系统是针对商店、商场、超市的进销存业务处理的计算机化而设计,为进销存业务的处理人员提供计算机化的服务,改变以往的手工操作,提高工作效率,进而增强竞争力。本系统提供的服务主要有商品的进货、销售、库存管理以及相应的报表、查询功能等。系统使用前后端分离模式开发实现,后台使用springboot+mybatis开发,前端使用vue+nodejs实现,通过接口远程调用。
476 0
基于Springboot+Vue开发前后端端分离农产品进销存系统