python的运算符
01.python语言使用的运算符包括:
- 算数运算符:
- +,加法运算。
- -,减法运算。
- *,乘法运算。
- /,自然除运算,计算结果为浮点数。
- //,整除运算,整除运算,计算结果取向下(小的数字)取整数部分。
- %,取余,计算结果取余数部分。
- **,乘方运算。
- 位运算:
- &,与运算,将两个数值转换为原码之后比较对应位置,都是1取1,否则取0。
- 例如:5的原码为0000 0101,2的原码为0000 0010,5&2之后的到0000 0000,值为0。
- |,或运算,将两个数值转换为原码之后比较对应位置,只要有一个1就取1,否则取0。
- 例如,5的原码为0000 0101,2的原码为0000 0010,5|2之后的到0000 0111,值为7。
- ^,异或,将两个数值转换为原码之后比较对应位置,相同的位取0,不同的位取1。
- 例如,10为0000 1010,9为0000 1001,10^9之后得到0000 0011,值为3。
- ~,取反,将数值转换为原码之后按位取反再转换为补码。
- 例如:12的原码为0000 1100,按位取反后为1111 0011,补码为1000 1101,~12值为-13。
- <<,左移,将数值转换为原码之后整体向左移动n位。
- 例如:8的原码为0000 1000,8 << 2,整体向左移动2位的结果为0010 0000,值为32。
- >>,右移动,将数值转为为原码之后整体向右移动n位。
- &,与运算,将两个数值转换为原码之后比较对应位置,都是1取1,否则取0。
- 比较运算符:
- ==,左右两边的对象的值是否相等(包括数据类型);相等返回True,否则返回False。
- !=,左右两边的对象的值是否不相等(包括数据类型);不相等返回True,否则返回False。
- >,左边的对象的值是否大于右边的对象的值,大于返回True,否则返回False。
- <,左边的对象的值是否小于右边的对象的值,小于返回True,否则返回False。
- >=,左边的对象的值是否大于等于右边的对象的值,大于等于于返回True,否则返回False。
- <=,左边的对象的值是否小于等于右边的对象的值,小于等于于返回True,否则返回False。
- 比较运算符支持链式:
- 例如:5 > 4 > 3
- 逻辑运算符:
- and,与运算,and左右两边的表达式同时为True,则返回True,否则返回False,比如:
if 5 > 4 and 9 > 8: print('OK')
- or,或运算,and两边的表达式有任意一边为True,则返回True,否则返回False,比如:
if 5 > 4 or 7 > 8: print('OK')
- not,非运算,如果not右边的表达式为True,则返回False,否则返回True,比如:
if not 12 < 9: print('OK')
- and,与运算,and左右两边的表达式同时为True,则返回True,否则返回False,比如:
- 赋值运算符:
- =,将=右边的值赋予=左边的标识符,被赋值的标识符称为变量,比如:
var = "hello world"
- =号支持链式表达,例如:x = y = z = 5。
- +=、-=,*=等:
- 可变对象中,x += 1等同于x = x + 1,即创建一个变量x,将原变量x+1的值赋予新的变量x。
- 不可变对象中:
- x += 1,修改变量x自身的值。
- x = x +1,即创建一个变量x,将原变量x+1的值赋予新的变量x。
- =,将=右边的值赋予=左边的标识符,被赋值的标识符称为变量,比如:
- 成员运算符:
- in,in右侧的内容里,是否包含了左侧的内容;包含返回True,否则返回False。
- not in,not in右侧的内容里,是否不包含了左侧的内容;不包含返回True,否则返回False。
- 身份运算符:
- is,is两侧的内容,是否执行id()函数的结果一致,是返回True,否则返回False。
- is not,is not两侧的内容,是否执行id()函数的结果不一致,不一致返回True,否则返回False。
02.python运算符的优先级:
- 以下表格展示了python运算符从高至低的优先级:
优先级 | Python运算符 | Python运算符说明 |
---|---|---|
1 | () | 小括号。 |
2 | ** | 乘方。 |
3 | ~ | 按位取反。 |
4 | +(正号),-(负号) | 符号运算符。 |
5 | *、/、//、% | 乘法和除法。 |
6 | +、- | 加法和减法。 |
7 | >>、<< | 左移和右移。 |
8 | & | 按位与运算。 |
9 | ^ | 按位异或运算。 |
10 | | | 按位或运算。 |
11 | ==、=!、>、<、>=、<= | 比较运算符。 |
12 | is、is not | 身份运算符。 |
13 | in、not in | 成员运算符。 |
14 | not | 逻辑非运算。 |
15 | and | 逻辑与运算。 |
16 | or | 逻辑或运算。 |
17 | exp1, exp2 | 逗号运算符。 |
文档更新时间: 2020-04-02 20:55 作者:闻骏