运算符
运算符(operator)就是诸如加、减、乘、除之类的东西,但一般程序语言支持的运算符要比这多的多。前面的章节已经介绍了部分,这里列出完整内容。
-
算术运算符
运算符 说明 例子 + 加 1 + 1 结果为 2 - 减 1 - 1 结果为 0 * 乘 2 * 3 结果为 6 / 除 6 / 2 结果为 3 % 取模, 即除法取余数 5 % 2 结果为 1 ** 幂,即几次方 2 ** 3 结果为 8 // 取整除,即除法取整(向下取整) 9 // 2 结果为 4 -
比较运算符
运算符 说明 例子 == 等于 1 == 1 结果为 True != 不等于 1 != 2 结果为 True > 大于 3 > 2 结果为 True < 小于 3 < 2 结果为 False >= 大于等于 3 >= 2 结果为 True <= 小于等于 3 <= 2 结果为 False -
赋值运算符
运算符 说明 例子 = 赋值 a = 1 += 加法并赋值 a += 1 等效于 a = a + 1 -= 减法并赋值 a -= 1 等效于 a = a - 1 *= 乘法并赋值 a *= 1 等效于 a = a * 1 /= 除法并赋值 a /= 1 等效于 a = a / 1 %= 取模并赋值 a %= 1 等效于 a = a % 1 **= 幂赋并值 a **= 1 等效于 a = a ** 1 //= 取整除并赋值 a //= 1 等效于 a = a // 1 -
逻辑运算符
一般用于条件运算,为了方便,下面例子假设x = 10, y = 20。运算符 说明 例子 and 与 x > 0 and y > 0 结果为 True or 或 x > 15 or y > 15 结果为 True not 非 not (x == 10) 结果为 False -
位运算符
位运算符(Bitwise Operators)相当于把数字按二进制方式进行运算,为了方便,下面例子假设x = 0b1111, 即15, y = 0b0011, 即3。运算符 说明 例子 & 按位与 x & y 结果为 3 按位或 x | y 结果为 15 ~ 按位取反 ~x 结果为 -16, 即 -0b10000, 符号位也取反了 << 左移 x << 2 结果为 60 >> 右移 x >> 2 结果为 3
-
成员运算符
成员运算符(Membership Operator)用于判断一个对象是否在序列中。运算符 说明 例子 in 在序列里 2 in [1,2,3] 结果为 True not in 不在序列里 4 not in [1,2,3] 结果为 True
-
身份运算符
身份运算符(Identity Operators)用于比较两个对象的id,Id值一样就表示对象的内存地址一样,也就是两个对象其实是同一个对象。运算符 说明 例子 is 是 x is y,如果x和y都指向同一个对象,则结果为True is not 不是 x is not y,如果x和y指向不同对象,则结果为True -
运算符优先级
就像小学数学里的先乘除后加减一样,运算是有优先级的,不过这东西一般不要刻意去记,需要时再查,或者写的时候使用括号。
下表优先级从高到低排列。优先级 运算符 1 ** 2 ~、 +、 - 3 *、 /、 %、 // 4 +、 - 5 >>、 << 6 & 7 ^、 8 <=、 <、 >、 >= 9 <>、 ==、 != 10 =、 %=、 /=、 //=、 -=、 +=、 *=、 **= 11 is、 is not 12 in、 not in 13 not、 or、 and