Python3 运算符

Python3 支持以下类型运算符:

算术运算符比较(关系)运算符赋值运算符逻辑运算符位运算符成员运算符身份运算符运算符优先级
算术运算

a , b = 2,3

运算符说明示例+加:将两个对象相加a + b 结果 5-减:将两个对象相减a - b 结果 -1*乘:将两个对象相乘或复制字符串a * b 结果 6/除:将两个对象相除;a /ba / b 结果 0.6666666666666666%取模或取余数a % b 结果 2//整除:将两个对象相除,取整a // b 结果 0**指数运算,或幂运算a ** b 结果 8比较运算(关系运算)

a , b = 2,3

运算符说明示例==等于:比较两个对象是否相等a == b 结果 False!=不等于:比较两个对象不相等a != b 结果 True>大于:比较对象a是否大于对象ba > b 结果 False<小于:比较对象a是否小于对象ba < b 结果 True>=大于等于:比较对象a是否大于或等于对象ba >= b 结果 False<=小于等于:比较对象a是否小于或等于对象ba <= b 结果 True赋值运算运算符说明示例=赋值运算a = 1+=加法赋值a += 1 等同于a = a + 1-=减法赋值a -= 1 等同于 a = a - 1*=乘法赋值a *= 1 等同于 a = a * 1//=整除赋值a //= 2 等同于a = a // 2%=取余赋值a %= 2 等同于 a = a % 2** =幂运算赋值a *= 2 等同于 a = a ** 2/=除法赋值a /= 2 等同于 a = a / 2逻辑运算

a , b = 2 , 3

运算符说明示例and与运算:如果a为 False;a and b 返回 False,否则它返回b 的值a and b 结果 3or或运算:如果a为True,a or b返回a的值,否则返回b的值a or b 结果 2not非运算:单目运算符,not a 如果a为True,返回False;反之则返回Truenot a 结果 False位运算

python的位运算是把数字当作二进制来计算,操作符如下:

按位与:&按位或:|按位异或:^按位取反:~左移:<<右移:>>
具体详细使用暂时不说。成员运算成员运算符有in、not in 两种,这里以下边代码作为说明示例

#!/usr/bin/python3a = 'a'lisa = ['a', 'b', 'c']lisb = ['d', 'e', 'f']if a in lisa: print('变量a在列表lisa中')if a not in lisb: print('变量a不在列表lisb中')

以上代码输出
变量a在列表lisa中
变量a不在列表lisb中

身份运算身份运算有两个操作符:is 、is notis 与 ==不同,==比较的是值,is比较的是存储对象以下代码为示例说明

#!/usr/bin/python3a = 'a'b = 'a'if a is b: print('a 和 b 指向同一个存储对象,有相同的标识')else: print ('a 和 b 没指向同一个存储对象,没有相同的标识')if id(a) == id(b): print ('a 和 b 指向同一个存储对象,有相同的标识')else: print ('a 和 b 没指向同一个存储对象,没有相同的标识')#修改变量 b 的值b = 'b'if a is b: print ('a 和 b 指向同一个存储对象,有相同的标识')else: print ('a 和 b 没指向同一个存储对象,没有相同的标识')if a is not b: print ('a 和 b 没指向同一个存储对象,没有相同的标识')else: print ('a 和 b 指向同一个存储对象,有相同的标识')

以上代码输出:
a 和 b 指向同一个存储对象,有相同的标识
a 和 b 指向同一个存储对象,有相同的标识
a 和 b 没指向同一个存储对象,没有相同的标识
a 和 b 没指向同一个存储对象,没有相同的标识

运算符优先级

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

运算符描述**指数 (最高优先级)~ , + , -按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)* , / , % , //乘,除,取模和取整除+ , -加法减法>> , <<右移,左移运算符&位 'AND'^位运算符<= , < , > , >=比较运算符<> , == , !=等于运算符= , %= , /= , //= , -= , += , *= , **=赋值运算符is , is not身份运算符in , not in成员运算符and , or , not逻辑运算符