python运算符及优先级
计算机可以进行的运算有很多种,可不只加减乘除这么简单,运算按种类可分为算数运算、比较运算、逻辑运算、赋值运算、成员运算、身份运算、位运算。
一、算数运算
以下假设变量:a=10,b=20
二、比较运算
以下假设变量:a=10,b=20,注:<>不等于在python2中使用,python3中不等于为 !=
三、逻辑运算
以下假设变量:a=10,b=20
四、赋值运算
以下假设变量:a=10,b=20
五、成员运算
示例:
>>> a = "hello" >>> "he" in a True >>> "hl" in a False >>> a = [1,5,10,100] >>> 10 in a True >>> 11 in a False
六、身份运算
== 判断两个变量值是不是相等,is 判断两个变量是不是引用同一个对象,对象id是不是相同。
之前博客有说,python有内存优化机制,长字符串和[-5,257)范围外的数字没有优化,以此为例,例如:
>>> a = 257 >>> b = 257 >>> id(a) 2588953715824 >>> id(b) 2588983651248 >>> a == b True >>> a is b False >>> c = 256 >>> d = 256 >>> id(c) 1955897424 >>> id(d) 1955897424 >>> c == d True >>> c is d True
七、位运算
之前博客有说二进制和二进制与十进制的转换,位运算符是把数字看作二进制来进行计算的。
以下假设变量:a=60,b=13
# 以下为示例代码,二进制有补0和空格
>>> a = 60
>>> b = 13
>>> bin(a) '0b0011 1100' >>> bin(b) '0b0000 1101' >>> a&b 12 >>> bin(12) '0b0000 1100' >>> a|b 61 >>> bin(61) '0b0011 1101' >>> a^b 49 >>> bin(49) '0b0011 0001' >>> ~a -61 >>> bin(-16) '-0b0001 0000' >>> a<<2 240 >>> bin(240) '0b1111 0000' >>> a>>2 15 >>> bin(15) '0b0000 1111'
Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符: