python运算符优先级 您所在的位置:网站首页 python的逻辑运算符优先级 python运算符优先级

python运算符优先级

#python运算符优先级| 来源: 网络整理| 查看: 265

        通过本专栏《小白轻松学python》前面一些文章的介绍,我们知道了python中一些常用的运算符。当这些常用的运算符同时出现在同一个表达式中时,它们是有运算的优先顺序的。就像数学中的四则运算一样,乘除法会优先于加减法,有括号的先算括号中的内容。

python常用运算符优先级表 **幂运算*、/、%、//乘、除、取余、取整+、-加、减、=、==、!=、is、is not、in、not in比较运算符、身份运算符、成员运算符not逻辑运算符 notand逻辑运算符 andor逻辑运算符 or=、+=、-=、*=、/=、%=、//=、**=赋值运算符

        以上常用的运算符优先级从上到下依次降低,运算优先级高的先计算,低的后计算。有括号时会优先运算括号中的内容,所以我们可以利用括号来打破运算优先级的限制。

优先级顺序 幂运算高于乘除运算

        幂运算的运算优先级高于乘除运算,当幂运算与乘除运算在同一个表达式中时,会先计算幂运算再计算乘除运算。

number = 3 * 2 ** 2 print(number) # 12

通过上面的代码,我们可以发现是先运算 2 ** 2 = 4 再运算 3 * 4 = 12,如果是先运算 3 * 2 = 6 再运算 6 ** 2 = 36。结果明显是12而不是36,所以幂运算高于乘法运算。

number = 8 / 2 ** 2 print(number) # 2.0

通过上面的代码,我们可以发现是先运算 2 ** 2 = 4 再运算 8 / 4 = 2.0,如果是先运算 8 / 2 = 4.0 再运算 4.0 ** 2 = 16.0。结果明显是2.0而不是16.0,所以幂运算高于除法运算。

number = 7 % 2 ** 2 print(number) # 3

通过上面的代码,我们可以发现是先运算 2 ** 2 = 4 再运算 7 % 4 = 3,如果是先运算 7 % 2 = 1 再运算 1 ** 2 = 1。结果明显是3而不是1,所以幂运算高于取余运算。

number = 7 // 2 ** 2 print(number) # 1

通过上面的代码,我们可以发现是先运算 2 ** 2 = 4 再运算 7 // 4 = 1,如果是先运算 7 // 2 = 3 再运算 3 ** 2 = 9。结果明显是1而不是9,所以幂运算高于取整运算。

乘除运算高于加减运算

        乘除运算的优先级高于加减运算,当乘除法与加减法在同一个表达式中时,会先计算乘除法再计算加减法。

number = 5 + 2 * 2 print(number) # 9

通过上面的代码,我们可以发现是先运算 2 * 2 = 4 再运算 5 + 4 = 9,如果是先运算 5 + 2 = 7 再运算 7 * 2 = 14。结果明显是9而不是14,所以乘法运算高于加法运算。

number = 5 - 2 / 2 print(number) # 4.0

通过上面的代码,我们可以发现是先运算 2 / 2 = 1.0 再运算 5 - 1.0 = 4.0,如果是先运算 5 - 2 = 3 再运算 3 / 2 = 1.5。结果明显是4.0而不是1.5,所以除法运算高于减法运算。

number = 5 - 2 % 2 print(number) # 5

通过上面的代码,我们可以发现是先运算 2 % 2 = 0 再运算 5 - 0 = 5,如果是先运算 5 - 2 = 3 再运算 3 % 2 = 1。结果明显是5而不是1,所以取余运算高于减法运算。

number = 5 + 2 // 2 print(number) # 6

通过上面的代码,我们可以发现是先运算 2 // 2 = 1 再运算 5 + 1 = 6,如果是先运算 5 + 2 = 7 再运算 7 // 2 = 3。结果明显是6而不是3,所以取整运算高于加法运算。

加减运算高于比较运算

        这里要补充一个知识点:bool值True和False可以作为整数1和0参与到数字的运算中。

        加减运算优先级高于比较运算,当加减运算与比较运算在同一个表达式中时,会先计算加减运算再计算比较运算。

number = 0 if 5 < 3 + 2: number = 1 else: number = 2 print(number) # 2

通过上面的代码,我们可以发现是先运算 3 + 2 = 5 再运算 5 < 5 = False,条件为假执行else下面的代码 number = 2 ;如果是先运算 5 3 - 2: number = 1 else: number = 2 print(number) # 2

通过上面的代码,我们可以发现是先运算 3 - 2 = 1 再运算 1 > 1 = False,条件为假执行else下面的代码 number = 2 ;如果是先运算 1 > 3 = False 再运算 False - 3 = -3 ,条件为真执行if下面的代码 number = 1 。结果明显是2,所以减法运算高于大于比较运算。

number = 0 if 5 = 3 = True 再运算 True - 1 = 0 ,条件为假执行else下面的代码 number = 2 。结果明显是1,所以减法运算高于大于等于比较运算。

number = 0 if 5 == 3 + 3: number = 1 else: number = 2 print(number) # 2

通过上面的代码,我们可以发现是先运算 3 + 3 = 6 再运算 5 == 6 = False,条件为假执行else下面的代码 number = 2 ;如果是先运算 5 == 3 = False 再运算 False + 3 = 3 ,条件为真执行if下面的代码 number = 1 。结果明显是2,所以加法运算高于等于比较运算。

number = 0 if 5 != 3 - 1: number = 1 else: number = 2 print(number) # 1

通过上面的代码,我们可以发现是先运算 3 - 1 = 2 再运算 5 != 2 = True,条件为真执行if下面的代码 number = 1 ;如果是先运算 5 != 3 = True 再运算 True - 1 = 0 ,条件为假执行else下面的代码 number = 2 。结果明显是1,所以减法运算高于不等于比较运算。

加减运算高于身份运算

        加减运算优先级高于身份运算,当加减运算与身份运算在同一个表达式中时,会先计算加减运算再计算身份运算。

state = 1 + 1 is 2 print(state) # True

通过上面的代码,我们可以发现是先运算 1 + 1 = 2 再运算 2 is 2 = True;如果是先运算 1 is 2 = False 再运算 1 + False = 1,那么state的值为1。结果明显是True而不是1,所以加法运算高于身份运算。

state = 1 - 1 is not 2 print(state) # True

通过上面的代码,我们可以发现是先运算 1 - 1 = 0 再运算 0 is not 2 = True;如果是先运算 1 is not 2 = True 再运算 1 - True = 0,那么state的值为0。结果明显是True而不是0,所以减法运算高于身份运算。

加减运算高于成员运算

        加减运算优先级高于成员运算,当加减运算与成员运算在同一个表达式中时,会先计算加减运算再计算成员运算。

state = 1 + 1 in [0, 1, 2] print(state) # True

通过上面的代码,我们可以发现是先运算 1 + 1 = 2 再运算 2 in [0, 1, 2] = True;如果是先运算 1 in [0, 1, 2] = True 再运算 1 + True = 2,那么state的值为2。结果明显是True而不是2,所以加法运算高于成员运算。

state = 1 - 1 not in [0, 1, 2] print(state) # False

通过上面的代码,我们可以发现是先运算 1 - 1 = 0 再运算 0 not in [0, 1, 2] = False;如果是先运算 1 not in [0, 1, 2] = False 再运算 1 - False = 1,那么state的值为1。结果明显是False而不是1,所以减法运算高于成员运算。

比较运算高于not

        比较运算的优先级高于逻辑运算not,当比较运算与not运算在同一个表达式中时,会先计算比较运算再计算not运算。

state = not 6


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有