微信公众号:码农充电站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 简明教程 --- 0,前言
Python 简明教程 --- 1,搭建Python 环境
Python 简明教程 --- 2,第一个Python 程序
Python 简明教程 --- 3,Python 基础概念
Python 简明教程 --- 4,Python 变量与基本数据类型
欢迎关注作者公众号,获取更多技术干货。

(编辑:北几岛)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!