精华内容
下载资源
问答
  • [clipboard4.png](https://blog.zeruns.tech/usr/uploads/2019/11/1193648793.png) **运算符优先级** --- ![clipboard5.png](https://blog.zeruns.tech/usr/uploads/2019/11/3358948826.png) 版权属于:zeruns(除...

    Loading...

    ![clipboard.png](https://blog.zeruns.tech/usr/uploads/2019/11/726946884.png)![clipboard1.png](https://blog.zeruns.tech/usr/uploads/2019/11/4279252183.png)![clipboard3.png](https://blog.zeruns.tech/usr/uploads/2019/11/3525677766.png)![clipboard4.png](https://blog.zeruns.tech/usr/uploads/2019/11/1193648793.png)

    **运算符优先级**

    ---

    ![clipboard5.png](https://blog.zeruns.tech/usr/uploads/2019/11/3358948826.png)

    Ali_860X80.jpg

    Huawei_1200x300_120k 4.jpg

    最后修改:2020 年 08 月 13 日 06 : 14 PM

    © 允许规范转载

    赞赏

    如果您觉得我的文章有帮助,请随意赞赏,赞赏有助于激发博主的热情,感谢!

    ×Close

    赞赏作者

    扫一扫支付

    png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAABS2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+IEmuOgAAAA1JREFUCJljePfx038ACXMD0ZVlJAYAAAAASUVORK5CYII=

    png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAABS2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIi8+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgo8P3hwYWNrZXQgZW5kPSJyIj8+IEmuOgAAAA1JREFUCJljePfx038ACXMD0ZVlJAYAAAAASUVORK5CYII=

    支付宝支付

    微信支付

    展开全文
  • Python语言支持以下类型的运算符:接下来让我们一个个来学习Python运算符Python算术运算符以下假设变量:a=10,b=20:运算符描述实例+加 - 两个对象相加a + b 输出结果 30-减 - 得到负数或是一个数减去另一个数a ...

    什么是运算符?

    本章节主要说明Python的运算符。举个简单的例子4 +5 = 9。 例子中,4 和 5 被称为操作数,"+" 称为运算符。

    Python语言支持以下类型的运算符:

    接下来让我们一个个来学习Python的运算符。

    Python算术运算符

    以下假设变量:a=10,b=20:

    运算符描述实例

    +

    加 - 两个对象相加

    a + b 输出结果 30

    -

    减 - 得到负数或是一个数减去另一个数

    a - b 输出结果 -10

    *

    乘 - 两个数相乘或是返回一个被重复若干次的字符串

    a * b 输出结果 200

    /

    除 - x除以y

    b / a 输出结果 2

    %

    取模 - 返回除法的余数

    b % a 输出结果 0

    **

    幂 - 返回x的y次幂

    a**b 为10的20次方, 输出结果 100000000000000000000

    //

    取整除 - 返回商的整数部分(向下取整)

    >>>9//24>>>-9//2-5

    以下实例演示了Python所有算术运算符的操作:

    实例(Python 2.0+)

    #!/usr/bin/python# -*- coding: UTF-8 -*-a= 21b= 10c= 0c= a+ bprint"1 - c 的值为:", cc= a- bprint"2 - c 的值为:", cc= a* bprint"3 - c 的值为:", cc= a/ bprint"4 - c 的值为:", cc= a% bprint"5 - c 的值为:", c# 修改变量 a 、b 、ca= 2b= 3c= a**bprint"6 - c 的值为:", ca= 10b= 5c= a//bprint"7 - c 的值为:", c

    运行实例 »

    以上实例输出结果:

    1-c 的值为:312-c 的值为:113-c 的值为:2104-c 的值为:25-c 的值为:16-c 的值为:87-c 的值为:2

    注意:Python2.x 里,整数除整数,只能得出整数。如果要得到小数部分,把其中一个数改成浮点数即可。

    >>>1/20>>>1.0/20.5>>>1/float(2)0.5

    Python比较运算符

    以下假设变量a为10,变量b为20:

    运算符描述实例

    ==

    等于 - 比较对象是否相等

    (a == b) 返回 False。

    !=

    不等于 - 比较两个对象是否不相等

    (a != b) 返回 true.

    <>

    不等于 - 比较两个对象是否不相等。python3 已废弃。

    (a <> b) 返回 true。这个运算符类似 != 。

    >

    大于 - 返回x是否大于y

    (a > b) 返回 False。

    <

    小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。

    (a < b) 返回 true。

    >=

    大于等于 - 返回x是否大于等于y。

    (a >= b) 返回 False。

    <=

    小于等于 - 返回x是否小于等于y。

    (a <= b) 返回 true。

    以下实例演示了Python所有比较运算符的操作:

    实例(Python 2.0+)

    #!/usr/bin/python# -*- coding: UTF-8 -*-a= 21b= 10c= 0ifa== b: print"1 - a 等于 b"else: print"1 - a 不等于 b"ifa!= b: print"2 - a 不等于 b"else: print"2 - a 等于 b"ifa<> b: print"3 - a 不等于 b"else: print"3 - a 等于 b"ifa< b: print"4 - a 小于 b"else: print"4 - a 大于等于 b"ifa> b: print"5 - a 大于 b"else: print"5 - a 小于等于 b"# 修改变量 a 和 b 的值a= 5b= 20ifa<= b: print"6 - a 小于等于 b"else: print"6 - a 大于 b"ifb>= a: print"7 - b 大于等于 a"else: print"7 - b 小于 a"

    以上实例输出结果:

    1-a 不等于b

    2-a 不等于b

    3-a 不等于b

    4-a 大于等于b

    5-a 大于b

    6-a 小于等于b

    7-b 大于等于a

    Python赋值运算符

    以下假设变量a为10,变量b为20:

    运算符描述实例

    =

    简单的赋值运算符

    c = a + b 将 a + b 的运算结果赋值为 c

    +=

    加法赋值运算符

    c += a 等效于 c = c + a

    -=

    减法赋值运算符

    c -= a 等效于 c = c - a

    *=

    乘法赋值运算符

    c *= a 等效于 c = c * a

    /=

    除法赋值运算符

    c /= a 等效于 c = c / a

    %=

    取模赋值运算符

    c %= a 等效于 c = c % a

    **=

    幂赋值运算符

    c **= a 等效于 c = c ** a

    //=

    取整除赋值运算符

    c //= a 等效于 c = c // a

    以下实例演示了Python所有赋值运算符的操作:

    实例(Python 2.0+)

    #!/usr/bin/python# -*- coding: UTF-8 -*-a= 21b= 10c= 0c= a+ bprint"1 - c 的值为:", cc+= aprint"2 - c 的值为:", cc*= aprint"3 - c 的值为:", cc/= aprint"4 - c 的值为:", cc= 2c%= aprint"5 - c 的值为:", cc**= aprint"6 - c 的值为:", cc//= aprint"7 - c 的值为:", c

    以上实例输出结果:

    1-c 的值为:312-c 的值为:523-c 的值为:10924-c 的值为:525-c 的值为:26-c 的值为:20971527-c 的值为:99864

    Python位运算符

    按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:

    下表中变量 a 为 60,b 为 13,二进制格式如下:

    a =00111100b =00001101-----------------a&b =00001100a|b =00111101a^b =00110001~a =11000011

    运算符描述实例

    &

    按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0

    (a & b) 输出结果 12 ,二进制解释: 0000 1100

    |

    按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。

    (a | b) 输出结果 61 ,二进制解释: 0011 1101

    ^

    按位异或运算符:当两对应的二进位相异时,结果为1

    (a ^ b) 输出结果 49 ,二进制解释: 0011 0001

    ~

    按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x类似于 -x-1

    (~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。

    <<

    左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。

    a << 2 输出结果 240 ,二进制解释: 1111 0000

    >>

    右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数

    a >> 2 输出结果 15 ,二进制解释: 0000 1111

    以下实例演示了Python所有位运算符的操作:

    实例(Python 2.0+)

    #!/usr/bin/python# -*- coding: UTF-8 -*-a= 60# 60 = 0011 1100 b= 13# 13 = 0000 1101 c= 0c= a& b; # 12 = 0000 1100print"1 - c 的值为:", cc= a| b; # 61 = 0011 1101 print"2 - c 的值为:", cc= a^ b; # 49 = 0011 0001print"3 - c 的值为:", cc= ~a; # -61 = 1100 0011print"4 - c 的值为:", cc= a<< 2; # 240 = 1111 0000print"5 - c 的值为:", cc= a>> 2; # 15 = 0000 1111print"6 - c 的值为:", c

    以上实例输出结果:

    1-c 的值为:122-c 的值为:613-c 的值为:494-c 的值为:-615-c 的值为:2406-c 的值为:15

    Python逻辑运算符

    Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:

    运算符逻辑表达式描述实例

    and

    x and y

    布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。

    (a and b) 返回 20。

    or

    x or y

    布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。

    (a or b) 返回 10。

    not

    not x

    布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。

    not(a and b) 返回 False

    以上实例输出结果:

    实例(Python 2.0+)

    #!/usr/bin/python# -*- coding: UTF-8 -*-a= 10b= 20ifaandb: print"1 - 变量 a 和 b 都为 true"else: print"1 - 变量 a 和 b 有一个不为 true"ifaorb: print"2 - 变量 a 和 b 都为 true,或其中一个变量为 true"else: print"2 - 变量 a 和 b 都不为 true"# 修改变量 a 的值a= 0ifaandb: print"3 - 变量 a 和 b 都为 true"else: print"3 - 变量 a 和 b 有一个不为 true"ifaorb: print"4 - 变量 a 和 b 都为 true,或其中一个变量为 true"else: print"4 - 变量 a 和 b 都不为 true"ifnot(aandb): print"5 - 变量 a 和 b 都为 false,或其中一个变量为 false"else: print"5 - 变量 a 和 b 都为 true"

    以上实例输出结果:

    1-变量a 和b 都为true2-变量a 和b 都为true,或其中一个变量为true3-变量a 和b 有一个不为true4-变量a 和b 都为true,或其中一个变量为true5-变量a 和b 都为false,或其中一个变量为false

    Python成员运算符

    除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。

    运算符描述实例

    in

    如果在指定的序列中找到值返回 True,否则返回 False。

    x 在 y 序列中 , 如果 x 在 y 序列中返回 True。

    not in

    如果在指定的序列中没有找到值返回 True,否则返回 False。

    x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

    以下实例演示了Python所有成员运算符的操作:

    实例(Python 2.0+)

    #!/usr/bin/python# -*- coding: UTF-8 -*-a= 10b= 20list= [1, 2, 3, 4, 5]; if(ainlist): print"1 - 变量 a 在给定的列表中 list 中"else: print"1 - 变量 a 不在给定的列表中 list 中"if(bnotinlist): print"2 - 变量 b 不在给定的列表中 list 中"else: print"2 - 变量 b 在给定的列表中 list 中"# 修改变量 a 的值a= 2if(ainlist): print"3 - 变量 a 在给定的列表中 list 中"else: print"3 - 变量 a 不在给定的列表中 list 中"

    以上实例输出结果:

    1-变量a 不在给定的列表中list 中2-变量b 不在给定的列表中list 中3-变量a 在给定的列表中list 中

    Python身份运算符

    身份运算符用于比较两个对象的存储单元

    运算符描述实例

    is

    is 是判断两个标识符是不是引用自一个对象

    x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False

    is not

    is not 是判断两个标识符是不是引用自不同对象

    x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。

    注: id() 函数用于获取对象内存地址。

    以下实例演示了Python所有身份运算符的操作:

    实例(Python 2.0+)

    #!/usr/bin/python# -*- coding: UTF-8 -*-a= 20b= 20if(aisb): print"1 - a 和 b 有相同的标识"else: print"1 - a 和 b 没有相同的标识"if(aisnotb): print"2 - a 和 b 没有相同的标识"else: print"2 - a 和 b 有相同的标识"# 修改变量 b 的值b= 30if(aisb): print"3 - a 和 b 有相同的标识"else: print"3 - a 和 b 没有相同的标识"if(aisnotb): print"4 - a 和 b 没有相同的标识"else: print"4 - a 和 b 有相同的标识"

    以上实例输出结果:

    1-a 和b 有相同的标识2-a 和b 有相同的标识3-a 和b 没有相同的标识4-a 和b 没有相同的标识

    is 与 == 区别:

    is 用于判断两个变量引用对象是否为同一个(同一块内存空间), == 用于判断引用变量的值是否相等。

    >>>a =[1,2,3]>>>b =a

    >>>b isa

    True>>>b ==a

    True>>>b =a[:]>>>b isa

    False>>>b ==a

    True

    Python运算符优先级

    以下表格列出了从最高到最低优先级的所有运算符:

    运算符描述

    **

    指数 (最高优先级)

    ~ + -

    按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)

    * / % //

    乘,除,取模和取整除

    + -

    加法减法

    >> <<

    右移,左移运算符

    &

    位 'AND'

    ^ |

    位运算符

    <= < > >=

    比较运算符

    <> == !=

    等于运算符

    = %= /= //= -= += *= **=

    赋值运算符

    is is not

    身份运算符

    in not in

    成员运算符

    not and or

    逻辑运算符

    以下实例演示了Python所有运算符优先级的操作:

    实例(Python 2.0+)

    #!/usr/bin/python# -*- coding: UTF-8 -*-a= 20b= 10c= 15d= 5e= 0e= (a+ b)* c/ d#( 30 * 15 ) / 5print"(a + b) * c / d 运算结果为:", ee= ((a+ b)* c)/ d# (30 * 15 ) / 5print"((a + b) * c) / d 运算结果为:", ee= (a+ b)* (c/ d); # (30) * (15/5)print"(a + b) * (c / d) 运算结果为:", ee= a+ (b* c)/ d; # 20 + (150/5)print"a + (b * c) / d 运算结果为:", e

    以上实例输出结果:

    (a +b)*c /d 运算结果为:90((a +b)*c)/d 运算结果为:90(a +b)*(c /d)运算结果为:90a +(b *c)/d 运算结果为:50

    展开全文
  • Python 运算符优先级

    2021-03-07 09:49:07
    整理自《Python学习手册 第五版》147p 优先级从上至下,依此增加 运算符 描述 yield , lambda 函数组成部分 x if y else z 三元表达式 x or y , x and y 逻辑与,逻辑非 not x 逻辑或(一元表达式) ...

    官方参考手册 6.17

    在这里插入图片描述

    import numpy as np
    
    a = np.array([[1,2],[3,4]])
    b = np.array([5,6])
    c = np.array([[5,6],[7,8]])
    
    a@b
    Out[94]: array([17, 39])
    

    运算符:

    +	-	*	**	/	//	%	@	<<	>>	&	
    +	|	^	~	:=	<	>	<=	>=	==	!=	
    

    分隔符:

    (	)	[	]	{	}	,	:	.	;	@	
    =	->	+=	-=	*=	/=	//=	%=	@=	&=	|=	
    ^=	>>=	<<=	**=	
    

    以下 ASCII 字符具有特殊含义,对词法分析器有重要意义:

    '	"	#	\
    

    以下 ASCII 字符不用于 Python。在字符串字面值或注释外使用时,将直接报错:

    $	?	`
    

    之前内容

    整理自《Python学习手册 第五版》147p
    优先级从上至下,依此增加

    运算符 描述
    yield , lambda 函数语句
    x if y else z 三元表达式
    x or y 逻辑或
    x and y 逻辑与
    not x 逻辑非(一元表达式)
    x in y , x not in y
    x is y , x is not y
    x<y , x<=y , x>y , x>=y , x==y , x!=y
    成员关系,y是容器,x不能是表达式
    对象同一性测试,x、y不能是表达式
    大小比较、集合的子集和超集,值等价性运算符
    x|y 按位或、集合并集
    x^y 按位异或、集合对称差集
    x&y 按位与、集合交集
    x<<y , x>>y 将x左移或右移y位
    x+y , x-y 加法、拼接,减法、集合差集
    x*y , x%y , x/y , x//y 乘法、重复;求余、取模、格式化;真除法;向下取整除法
    -x , +x , ~x 取负、取正、取反(按位非,取反码)(一元表达式)
    x**y 幂运算(指数)
    x[i] , x[i:j:k] , x(…) , x.attr 索引;分片;调用;属性引用
    (…) , […] , {…} 括号、推导式、字面量

    (...) 当作括号时,是强制优先级,返回主表达式一个括号内表达式的运算结果的数值

    总的来说,一般情况下,幂运算有最高的优先级,其次是一元表达式,乘除,加减,位,比较,逻辑,三元表达式,函数

    而容器是特殊情况,容器也不能直接拿来运算,除了拼接和重复,容器类似于一元表达式。而拼接和重复类似于二元表达式

    一元表达式:一般情况下,若一元表达式非优先级,整个式子都无法解析
    例如 1 or not 1,或是not 1 or 1,其实可以理解为or和not是同级优先级的,但是就是必须给not一个安居之所

    所以not、+、-等一元表达式下,必须看作和后面的数值是一体的

    is和in与比较运算符是同一级别的,但注意使用场合的意义

    其实最不习惯的就是很少用到的位运算,在Python中,每一个位运算不与其他位运算同一优先级:取反、位移、与、异或、或

    关于 or 和 and 之间的优先级

    已经确定and的优先级大于or,这是之前搞错的问题,幸亏在论坛里问了下!

     1 or 0  and 0  =  1
    (1 or 0) and 0  =  0
    

    大佬让我看看这个是怎么回事!

    以下是之前的错误的思路,大家可以找找茬!

    错误思路

    我发完文章后,看到推荐中提到这类文章,关键是not>and>or映入眼帘,而这个之前我也很难验证,但当时确定or和and是同级的关系,于是这次我再验证!

    In [1]: l=[]
    
    In [2]: def f1():
       ...:     l.append(1)
       ...:     return 1
       ...:
    
    In [3]: def f0():
       ...:     l.append(0)
       ...:     return 0
       ...:
    
    In [4]: f1() or f0() and f0()
    Out[4]: 1
    
    In [5]: l
    Out[5]: [1]
    
    In [6]: l=[]
       ...: f1() and f0() or f1() and f1()
    Out[6]: 1
    
    In [7]:
    
    In [7]: l
    Out[7]: [1, 0, 1, 1]
    
    In [8]: l=[]
       ...: f1() and f0() or f0() and f1()
    Out[8]: 0
    
    In [9]: l
    Out[9]: [1, 0, 0]
    

    网上多篇文章以1 or 0 and 0举例,于是我就照着这个例子去尝试。
    我的观点是,or and同级,但有截断效应,例如这个表达式,当or之前的结果是1,就会截断,不再运行后面的结果,是顺序+截断机制

    另一种截断演示:

    In [107]: f0() and f0() and f0() and f0() or f0() or f1() and f0() and f1()
    Out[107]: 0
    
    In [108]: l
    Out[108]: [0, 0, 1, 0]
    

    为了方便理解,这里改写为:
    01 and1 02 and2 03 and3 04 or1 05 or2 10 and4 0 and5 11
    开始的值是0,与and搭配产生截断效应,意思是,只要0+and,后面的结果不用看,表达式结果就是0,于是这一串的截断,忽略and后面的数值,所以掠过了02、03、04,直到遇到or1,察觉or1后面的值需要试一下,于是运算了05,1+or才是截断,于是继续运算,于得并运算了10,此时的表达式等同于:1 and 0 and 1,1+and没有触发截断,需要看and后面的数值,是0,1 and 0,结果是0,0 and 1,但是0+and触发截断,所以略过后面的1,此时表达式结束,于是返回结果是0,取了四次数值:0,0,1,0。大家对应一下!

    总结,在以上表达式中,解释器从左到右顺序的看了每一个运算符,但是因为截断效应,并没有看部分被截断的数值!

    正确思路

    上述有一点是正确的,无论怎样,解释器会遍历所有的操作符并规划运算单元,此后依序运算每个子表达式,但是一些数值没必要去运算时,还是会略过的,于是:

    In [4]: f1() or f0() and f0()
    Out[4]: 1
    
    In [5]: l
    Out[5]: [1]
    

    正确理解:
    x,y,z=1,0,0
    x or y and z
    首先遍历操作符,确定优先级:
    x or (y and z)
    但是仅仅是先算括号里面的and,再把其数值与x进行or运算
    但是在此之前,会先看x的数值,此时,x是1,所以已经没有必要算括号里面的表达式了!

    In [6]: l=[]
       ...: f1() and f0() or f1() and f1()
    Out[6]: 1
    
    In [7]: l
    Out[7]: [1, 0, 1, 1]
    
    In [8]: l=[]
       ...: f1() and f0() or f0() and f1()
    Out[8]: 0
    
    In [9]: l
    Out[9]: [1, 0, 0]
    
    In [15]: l=[]
        ...: f0() or f1() and f1() and f0() and f0()
    Out[15]: 0
    
    In [16]: l
    Out[16]: [0, 1, 1, 0]
    
    In [18]: l=[]
        ...: f0() or f1() and f1() and f0() and f0() or f1() and f1()
    Out[18]: 1
    
    In [19]: l
    Out[19]: [0, 1, 1, 0, 1, 1]
    

    0 or 1 and 1 and 0 and 0
    =>
    0 or (((1 and 1) and 0) and 0)

    展开全文
  • Python运算符优先级一览表

    千次阅读 2019-06-24 12:29:55
    所有的数学运算都是从左向右进行的,Python 语言中的大部分运算符也是从左向右结合的,只有单目运算符、赋值运算符和三目运算符例外,它们是从右向左结合的,也就是说,它们是从右向左运算的。 乘法和加法是两个...

    所有的数学运算都是从左向右进行的,Python 语言中的大部分运算符也是从左向右结合的,只有单目运算符、赋值运算符和三目运算符例外,它们是从右向左结合的,也就是说,它们是从右向左运算的。

     

    乘法和加法是两个可结合的运算符,也就是说,这两个运算符左右两边的操作数可以互换位置而不会影响结果。

    运算符有不同的优先级,所谓优先级就是在表达式运算中的运算顺序。表 1 中列出了包括分隔符在内的所有运算符的优先级顺序。

    表 1 运算符的优先级
    运算符说明 Python运算符 优先级
    索引运算符 x[index]或x[index:index2[:index3]] 18、19
    属性访问 x.attrbute  17
    乘方 ** 16
    按位取反 ~ 15
    符号运算符 +或- 14
    乘、除 *、/、//、% 13
    加、减 +、- 12
    位移 >>、<< 11
    按位与 & 10
    按位异或 ^ 9
    按位或 | 8
    比较运算符 ==、!=、>、>=、<、<=  7
    is运算符 is、is not 6
    in运算符 in、not in 5
    逻辑非 not 4
    逻辑与 and 3
    逻辑或 or 2

    根据表 1 中运算符的优先级,我们分析 4+4<<2 语句的执行结果。程序先执行 4+4 得到结果 8,再执行 8<<2 得到 32。如果使用“()”就可以改变程序的执行顺序,比如 4+(4<<2),则先执行 4<<2 得到结果16,再执行 4+16 得到 20。

    虽然 Python 运算符存在优先级的关系,但并不推荐过度依赖运算符的优先级,因为这会导致程序的可读性降低。因此,在这里要提醒读者:

    展开全文
  • python运算符优先级顺序

    千次阅读 2019-06-29 22:36:34
    python语言是一门脚本语言,支持面向对象、面向过程编程,兼具编译性和解释性的动态语言,整理出学习过程中一些基本Python运算符运算符优先级顺序。 一、算术运算符 运算符 描述 + 加 - 两个对象相加 ...
  • 【转发】 【Python入门与进阶】运算符与运算符优先级 0:导语 》》a:加减乘除小学都会,重点看下,有的符号有特殊的含义 比如加号 》》b:三元运算行比较特殊 》》c:运算符的优先级,记住常用的,其他查表。 1:...
  • python运算符优先级

    2021-03-17 17:42:03
    文章按照优先级由高到低的顺序对python运算符进行简单的示例 求幂 ** >>> a = 2 ** 3 >>> a 8 按位取反 ~ python中不支持一元运算(i++或i–类似的在python中不支持) >>> a = 0 >>...
  • Python——运算符及其优先级

    万次阅读 多人点赞 2018-08-02 16:58:17
    Python 中,支持以下类型的运算符: 算术运算符 比较(关系)运算符 逻辑(布尔)运算符运算符 赋值运算符 成员运算符 身份运算符 1. 算术运算符 运算符 含义 示例 + 加:两个对象相加,...
  • python运算符包括数学运算符、比较运算符、逻辑运算符、赋值运算符、位...数学运算符:除了加减乘除外,python还提供了取模%、整除运算//、次幂运算**,返回的是数值取模%a=5;b=2;c=a%b;print(c);整除// :商的整数...
  • python各种运算符优先级

    千次阅读 2019-12-17 10:03:33
    对于python基础的运算而言,想必大家都很熟悉,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算。 一、算数运算 以下假设变量:a=10,b=20 二、比较运算 以下假设变量...
  • python基础 字符串 运算符 1 布尔运算符 布尔运算符分为两种 1. True 为真 还通俗将就是正确 通过 通电等 2. Flase 为假 与True正好相反 表示不真确 不能通过 不同电 True 数值就是 1 False 数值就是0 ...
  • Python运算符 1.什么是运算符? 举个简单的例子 4 +5 = 9 。 例子中,4 和 5 被称为操作数,"+" 称为运算符 2.Python支持的运算符 算术运算符 比较(关系)运算符 逻辑(布尔)运算符运算符 赋值运算符 成员...
  • 种类:赋值运算符、算术运算符、关系运算符、逻辑运算符、位运算符、三目运算符 1.赋值运算符 +=:加减;连接符(连接字符串) -=、*=、/=:减、乘、除 **=:幂赋值运算符 //=:取整除赋值运算符 %=:取模赋值...
  • 什么是运算符 ...在Python中我们常见的运算符有:+、-、*、/、**、<、>、!=、//、%、&、|、^、~、>>、<<、<=、>=、==、not、and、or 运算符的使用方法 >>> #'...
  • 1. 第四章 运算符与表达式本章的主题是 Python 语言的内建运算符及表达式求值的优先级。1.1. 数值操作所有数值类型都提供下列运算:运算 描述x + y 加x - y 减x * y 乘x / y 常规除x //...
  • Python运算符及其优先级
  • =不等于 and 前后都满足,布尔型时要全部满足True,数值时选后面一个 or 满足前后其中一个,布尔型任意一个满足,数值时选前一个 not 反义结果 先算not再算and再算or 运算符优先级 幂运算再到一元到算术到比较到赋值...
  • 作者简介:笔名seaboat,擅长工程算法、人工智能算法、自然语言处理、计算机视觉、架构、分布式、高并发、大数据和搜索引擎等方面的技术,大多数编程语言都会使用,但更擅长Java、Python和C++。平时喜欢看书写作、...
  • 目录学习目标:学习内容:学习时间:学习产出:运算符优先级研究优先级结合性位运算研究1.按位与&2.按位或|3.按位取反~位运算使用场景参考 学习目标: 复习Task01内容,并对关键内容进行总结 学习内容: 主要...
  • python中运算优先级

    2020-05-26 17:12:04
    Python运算符优先级2. 多个逻辑运算优先级 1. Python运算符优先级 以下表格列出了从最高到最低优先级的所有运算符: 2. 多个逻辑运算优先级 当not和and及or在一起运算时,优先级为是not>and>or ...
  • 特殊的%运算 python中神奇的取模运算(-5%3=1,5%-3=-1) 4.abs()函数 返回指定数值的绝对值,如果传入的是一个复数,则返回的结果是复数的模 5.int(), float(), complex()函数 >>> int('520') 520 >>> int(3.14) 3 >>...
  • Python 3 运算符

    2021-02-12 21:25:40
    Python3 运算符 什么是运算符?...运算符优先级 接下来让我们一个个来学习Python的运算符。 Python算术运算符 以下假设变量a为10,变量b为21: 运算符描述实例 +算数加 - 两个对象相加。 a + b 输出结果 3
  • Python运算符优先级 运算符 描述     (), [], {key: value}, {} 元组表达式、列表表达式、字典表达式、集合表达式 x[index], x[index:index], x(arguments...), x.attribute ...
  • Python的运算符和控制符新内容数据类型Python中常见的数据类型变量概念变量的调用两值交换同时赋值常量dir()函数数字表达式与运算符Python算术...成员运算符Python身份运算符Python运算符优先级数据类型的强制转换...
  • 数学运算符:除了加减乘除外,python还提供了取模%、整除运算//、次幂运算**,返回的是数值 取模% a=5; b=2; c=a%b; print(c); 整除// :商的整数部分 a=5; b=2; c=a//b; print(c); 次幂运算**
  • Python3运算符

    2019-12-25 17:34:00
    Python3运算符 ...运算符优先级 Python算术运算符 以下假设变量a为10,变量b为21: 运算符描述实例 + 加 - 两个对象相加 a + b 输出结果 31 - 减 - 得到负数或是一个数减去另一个数 a - b ...
  • python运算符

    2017-07-24 17:16:00
    Python 运算符 Python 运算符 什么是运算符? 本章节主要说明Python的运算符。举个简单的例子4 +5 = 9。 例子中,4和5被称为操作数,"+...Python语言支持以下类型的运算符: ...运算符优先级 接下来让我...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,107
精华内容 2,842
关键字:

python数值运算符优先级

python 订阅