Python 简明教程 --- 5,Python 表达式与运算符
微信公众号:码农充电站pro
个人主页:https://codeshellme.github.io
靠代码行数来衡量开发进度,就像是凭重量来衡量飞机制造的进度。
—— Bill Gates
目录

1,什么是表达式
表达式是代码的重要组成部分,一个表达式由运算符和操作数两部分组成。
一个表达式就描述了对哪些数据,进行了什么样的操作。
如下就是一个表达式:
sum = 1 + 2
其中,=和+ 都是运算符,=是赋值运算符,+ 是相加运算符,sum,1,2 都是操作数。
这句话的含义是,将1 与 2 相加,并将它们的结果赋值给变量sum。
2,运算符
Python 中包含丰富的运算符,支持各种运算。如下:
- 算术运算符
- 位运算符
- 关系运算符
- 赋值运算符
- 逻辑运算符
下面对这些运算符逐一进行介绍。
3,算术运算符
| 运算符 | 含义 |
|---|---|
+ |
加 |
- |
减 |
* |
乘 |
/ |
除 |
// |
除,向下取整 |
% |
取余 |
** |
幂运算 |
示例:
>>> a = 20
>>> b = 7
>>>
>>> a + b
27
>>> a - b
13
>>> a * b
140
>>> a / b
2.857142857142857
>>> a // b
2
>>> a % b
6
>>> a ** b
1280000000
4,位运算符
进行位运算时,会先将数字转换成二进制,然后再做位运算。
| 运算符 | 含义 |
|---|---|
& |
按位与 |
| |
按位或 |
^ |
按位异或 |
~ |
按位取反 |
<< |
左移 |
>> |
右移 |
示例:
>>> a = 20
>>> b = 7
>>> a & b
4
>>> a | b
23
>>> a ^ b
19
>>> ~a # a 按位取反
-21
>>> ~b # b 按位取反
-8
>>> a << 3 # a 左移3 位
160
>>> b >> 2 # b 右移2 位
1
5,关系运算符
关系运算符又叫比较运算符,其计算结果为True 或False。
| 运算符 | 含义 |
|---|---|
== |
是否相等 |
!= |
是否不等 |
> |
是否大于 |
< |
是否小于 |
>= |
是否大于等于 |
<= |
是否小于等于 |
示例:
>>> a = 20
>>> b = 7
>>> a == b
False
>>> a != b
True
>>> a > b
True
>>> a < b
False
>>> a >= b
True
>>> a <= b
False
6,赋值运算符
等号= 是最基本的赋值运算符,= 右边的值称为右值,= 左边的值称为左值。
赋值运算符= 的含义是将右值赋值给左值。
例如下面代码,a 为左值,b 为右值,这行代码的含义是,将b 的值赋值给a:
a = b
下面这些赋值运算符,都是在赋值运算符= 与算术运算符的基础上衍生出来的,是一种简写形式:
| 运算符 | 示例 |
|---|---|
+= |
a += b 相当于 a = a + b |
-= |
a -= b 相当于 a = a - b |
*= |
a *= b 相当于 a = a * b |
/= |
a /= b 相当于 a = a / b |
//= |
a //= b 相当于 a = a // b |
%= |
a %= b 相当于 a = a % b |
**= |
a **= b 相当于 a = a ** b |
7,逻辑运算符
| 运算符 | 含义 |
|---|---|
and |
逻辑与 |
or |
逻辑或 |
not |
逻辑非 |
示例:
>>> a = True
>>> b = False
>>> a and b
False
>>> a or b
True
>>> not a
False
>>> not b
True
在数字中,非0 为真,0 为假:
>>> not 0 # 0 为 False,not 0 为 True
True
>>> not 1 # 1 为 True,not 1 为 False
False
>>> not 2 # 2 为 True,not 2 为 False
False
>>> not -1 # -1 为 True,not -1 为 False
False
>>> not -2 # -2 为 True,not -2 为 False
False
其实,True 就是 1,False 就是 0:
>>> True.real
1
>>> False.real
0
>>> True == 1
True
>>> False == 0
True
在字符串中,非空字符串为真,空字符串为假:
>>> not '' # '' 为 False,not '' 为 True
True
>>> not 'abc' # 'abc' 为 True,not 'abc' 为 False
False
8,运算符的优先级
运算符有优先级之分,表达式在计算的时候,会先计算优先级较高的,处于同一优先级时,会从左到右计算。
如下表达式,该表达式会先计算2 * 3 结果是6,再计算1 + 6,结果是 7:
>>> 1 + 2 * 3
7
之所以会先计算 2 * 3,就是因为* 的优先级高于+ 的优先级。
小括号()的优先级高于我们上面介绍到的所有运算符的优先级,如果想改变计算顺序,可以使用小括号()。
如下表达式,则会先计算1 + 2 结果为3,再计算3 * 3,结果为9:
>>> (1 + 2) * 3
9
下表汇总了上文中介绍到的所有运算符的优先级,从高到低排序,同一行(用,分隔)中的运算符具有相同优先级:
| 运算符 | 含义 |
|---|---|
() |
小括号内的表达式优先级最高 |
** |
幂运算 |
~x,+x,-x |
按位取反,正号,负号 |
*,/,%,// |
乘,除,取余,整除 |
+,- |
加,减 |
<<,>> |
左移,右移 |
& |
按位与 |
^,| |
按位异或,按位或 |
>,<,>=,<= |
比较运算 |
==,!= |
等于运算 |
=,+=,-=,*=,/=,%=,//=,**= |
赋值运算 |
not,and,or |
逻辑运算 |
建议:推荐使用
小括号()来显示表达式的计算顺序,而不依赖运算符本身的优先级,这样一目了然,方便维护。
(完。)
推荐阅读:
Python 简明教程 --- 2,第一个Python 程序
Python 简明教程 --- 4,Python 变量与基本数据类型
欢迎关注作者公众号,获取更多技术干货。

Python 简明教程 --- 5,Python 表达式与运算符的更多相关文章
- 《Python简明教程》总结
Python经典教程<Python简明教程> 目录: 为什么Python 安装Python 体验Python Python数据类型 运算符与表达式 控制流 函数 模块 数据结构 解决问题 ...
- Python 简明教程 --- 8,Python 字符串函数
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 好代码本身就是最好的文档.当你需要添加一个注释时,你应该考虑如何修改代码才能不需要注释. -- St ...
- Python 简明教程 --- 9,Python 编码
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 当你选择了一种语言,意味着你还选择了一组技术.一个社区. -- Joshua Bloch 目录 1, ...
- Python 简明教程 ---10,Python 列表
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 程序 = 算法 + 数据结构 -- Nicklaus Wirth 目录 从这句话程序 = 算法 + ...
- Python 简明教程 --- 6,Python 控制流
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io Talk is cheap, show me the code. -- Linus Torvalds ...
- Python 简明教程 --- 7,Python 字符串
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 过早的优化代码是罪恶之源. -- Donald Knuth 目录 无论哪种编程语言,字符串处理都是最 ...
- 【笔记】Python简明教程
Python简明教程,此资源位于http://woodpecker.org.cn/abyteofpython_cn/chinese/ s=u'中文字符' #u表示unicode,使用u之后能正常显示中 ...
- python简明教程
Python简明教程 MachinePlay关注 0.7072018.09.26 01:49:43字数 2,805阅读 9,287 Python一小时快速入门 1.Python简介 pylogo. ...
- Python 简明教程 --- 14,Python 数据结构进阶
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 如果你发现特殊情况太多,那很可能是用错算法了. -- Carig Zerouni 目录 前几节我们介 ...
随机推荐
- vnc安装 VNC的安装以及使用[转]
VNC (Virtual Network Console)是虚拟网络控制台的缩写.它 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的.VNC 是在基于 UNIX 和 ...
- 跟着阿里学JavaDay04——Java基础语法(二)
一.Java运算符 运算符的简介 所有的程序开发,都是对数字的进行处理.而对数字的处理,一定会存在所谓的操作模式,而这些操作模式就被称为运算符. 算术运算符 对于算术运算符,我们主要掌握++,--的运 ...
- prometheus配置pushgateway功能测试
一.环境: 1.prometheus服务器ip:192.168.0.208 2.node-exporter客户机ip:192.168.0.202 二.测试设计考虑: pushgateway类似一台信息 ...
- Chisel3 - Tutorial - ByteSelector
https://mp.weixin.qq.com/s/RQg2ca1rwfVHx_QG-IOV-w 字节选择器. 参考链接: https://github.com/ucb-bar/chisel ...
- Java实现 删数字
删数字 时间限制: 1 Sec 内存限制: 128 MB 题目描述 奶牛在数学课上学习了整除的概念.农夫Farmer John为了考验它的数学水平,于是在白纸上写了正整数T.由于农夫不喜欢数字0,所以 ...
- 温故知新-多线程-深入刨析CAS
文章目录 摘要 CAS是什么? CAS是如何实现的? CAS存在的问题? 你的鼓励也是我创作的动力 Posted by 微博@Yangsc_o 原创文章,版权声明:自由转载-非商用-非衍生-保持署名 ...
- 【大厂面试05期】说一说你对MySQL中锁的了解?
这是我总结的一个表格,是本文中涉及到的锁(因为篇幅有限就没有包括自增锁) 加锁范围 名称 用法 数据库级 全局读锁 执行Flush tables with read lock命令各整个库接加一个读锁, ...
- MySQL索引实践
数据库索引本质上是一种数据结构(存储结构+算法),目的是为了加快数据检索速度. 1.索引的类型(待完善) 主键索引:给表设置主键,这个表就拥有主键索引. 唯一索引:unique 普通索引:增加某个字段 ...
- Istio的运维-诊断工具(istio 系列五)
Istio的运维-诊断工具 在参考官方文档的时候发现环境偶尔会出现问题,因此插入一章与调试有关的内容,便于简单问题的定位.涵盖官方文档的诊断工具章节 目录 Istio的运维-诊断工具 使用istioc ...
- local 对象补充
昨日回顾 1 @app.before_first_request,再项目启动后接收到的第一个请求,会执行before_first_request,他再@app.before_request之前执行.他 ...