微信公众号:码农充电站pro
我的主页:https://codeshellme.github.iohtml
靠代码行数来衡量开发进度,就像是凭重量来衡量飞机制造的进度。
—— Bill Gatespython
目录git
表达式
是代码的重要组成部分,一个表达式由运算符
和操做数
两部分组成。github
一个表达式就描述了对哪些数据
,进行了什么样的操做
。shell
以下就是一个表达式:微信
sum = 1 + 2
其中,=
和+
都是运算符,=
是赋值运算符,+
是相加运算符,sum
,1
,2
都是操做数。code
这句话的含义是,将1
与 2
相加,并将它们的结果赋值
给变量sum
。htm
Python 中包含丰富的运算符,支持各类运算。以下:blog
下面对这些运算符逐一进行介绍。排序
运算符 | 含义 |
---|---|
+ |
加 |
- |
减 |
* |
乘 |
/ |
除 |
// |
除,向下取整 |
% |
取余 |
** |
幂运算 |
示例:
>>> 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
进行位运算时,会先将数字转换成二进制,而后再作位运算。
运算符 | 含义 |
---|---|
& |
按位与 |
| |
按位或 |
^ |
按位异或 |
~ |
按位取反 |
<< |
左移 |
>> |
右移 |
示例:
>>> 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
关系运算符又叫比较运算符
,其计算结果为True
或False
。
运算符 | 含义 |
---|---|
== |
是否相等 |
!= |
是否不等 |
> |
是否大于 |
< |
是否小于 |
>= |
是否大于等于 |
<= |
是否小于等于 |
示例:
>>> a = 20 >>> b = 7 >>> a == b False >>> a != b True >>> a > b True >>> a < b False >>> a >= b True >>> a <= b False
等号=
是最基本的赋值运算符,=
右边的值称为右值
,=
左边的值称为左值
。
赋值运算符=
的含义是将右值
赋值给左值
。
例以下面代码,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 |
运算符 | 含义 |
---|---|
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
运算符有优先级之分,表达式在计算的时候,会先计算优先级较高的,处于同一优先级时,会从左到右
计算。
以下表达式,该表达式会先计算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 变量与基本数据类型
欢迎关注做者公众号,获取更多技术干货。