表达式
变量或(和)常量和运算符(又叫操作符)的组合叫表达式。表达式中的变量或常量称为操作数,表达式可分为多种类别,具体取决于所用运算符的类型。运算符主要类型包括:算术运算符、赋值运算符、条件运算符、逻辑运算符和位运算符等。
算术运算符
算术运算符是用于完成基本的算术四则运算的符号。
| 算术运算符 | 名称 | 例子 |
| ------------- |:----------------|: ------:|
| + | 加法运算符 |1+1,a+b,可以直接作用于数值或变量。|
| - | 减法运算符 | 2-1,a-b。 |
| * | 乘法运算符 |22,ab。 |
| / | 除法运算符 | 2/2,a/b。注:即使,分子分分母都为整型,
除法的结果总为浮点数。 |
| % | 取模运算符 | 3%2,a%b。注:得到表达式整除后的余数,
如3除以2商为1,余数为1。所以3%2=1。 |
| ** | 幂运算符 | 3**2,a**b 。注:**符号后面的数为前面数的
指数,如3**2即为3的2次方,所以3**2=9.|
| // | 取整除(f loor 除)运算符 | 3//2,a//b。
注:取整并非四舍五入,而是向左取整。
如3//2=1,实际结果为1.5向数轴左边取整为1;
-3//2=-2 ,实际结果为-1.5向数轴左边取整为-2|
赋值运算符
赋值运算符的一般形式,var=expression。赋值运算符的功能是把左边的值或表达式的计算结果赋予左边的变量。赋值运算符具有右结合性,也就是说运算时从右往左。如:a=1读作1赋值给(变量)a。b=2读作2赋值给(变量)a。c=a+b读作a与b的和赋值给(变量)c。除了简单运算符,还有与算术运算符结合的复合运算符。
|赋值运算符 | 名称 | 例子 |
| ------------- |:----------------|: ------:|
| = | 简单赋值运算符 | a=1,b=1,c=a+b |
| += | 加法赋值运算符 | a=0,a+=1相当于a=a+1,
变量a必须先赋值才能被用于+=运算符,
因为在python中,变量必须先声明才能
使用,赋值运算符又是从右向左运算,所
以本例中中a=a+1,由于a之前没有声明,
所以会报错。以下的复合运算符都遵从以
上规则。|
| -= | 减法赋值运算符 | a=0,a-=1相当于a=a-1 |
| = | 乘法赋值运算符 |a=1,a*=2相当于a=a2 |
| /= | 除法赋值运算符 | a=4,a/=2相当于a=a/2 |
| %= | 取模赋值运算符 | a=3,a%=2相当于a=a%2 |
| = | 指数赋值运算符 | a=2,a**=2相当于a=a2 |
| //= | 取整除赋值运算符 | a=3,a//=2相当于a=a//1 |
比较(关系)运算符
使用比较运算符比较两个值,结果是一个布尔值,要么是结果为 True,要么为 False。
|比较运算符 | 名称 | 例子 |
| ------------- |:----------------|: ------:|
|== | 等于 | 1==1,1==2,a==b,判断数值或变量的值是否相等,
相等则为True,不等为False |
|!= | 不等于 | 1!=1,1!=2,a!=b,判断数值或变量的值是否不相等,
不相等则为True,相等为False |
|is | 引用同一对象 | a=[1,2,3],b=[1,2,3],a is b结果为False,虽然a和b
值一样,因为引用自不同的对象,所以会为False。 |
|is not | 引用不同的对象 |a=[1,2,3],b=[1,2,3],a is not b结果为True。 |
|> | 大于 |1>2, a>b |
| >= | 大于等于|1>=2, a>=b|
| < | 小于| 1<2, a<b |
| <= | 小于等于|1<=2, a<=b |
标识运算符
|标识运算符 | 名称 | 例子 |
| ------------- |:----------------|: ------:|
|is | 引用同一对象 | a=[1,2,3],b=[1,2,3],a is b结果为False,虽然a和b
值一样,因为引用自不同的对象,所以会为False。 |
|is not | 引用不同的对象 |a=[1,2,3],b=[1,2,3],a is not b结果为True。 |
逻辑运算符
|逻辑运算符 | 名称 | 例子 |
| ------------- |:----------------|: ------:|
|and | 逻辑与 | True and True=True,True and False =False ,
False and False =False。
注:只有运算符两侧全为True时,结果才为True。 |
|or | 逻辑或 | True and True=True,True and False =True,
False and False =False。
注:只要运算符两侧有一个为True,结果就为True。 |
|not | 逻辑非 | not True =False,not False =True。注:相反结果,
为True时结果为False,为False结果为True |
python中数值型0在布尔值上下文环境中为Flase,其他数值为True;None值为False;空字符串‘’或""为False,非空为True;空序列、字典、集合、元组为False,非空为True。
逻辑与and: 返回的结果是决定结果的值。如x and y,如果 x 为真,结果由y决定,结果为 y ;如果 x 为假,结果由x决定,返回 x。非布尔值1 and 2结果为2,2 and 1结果为1;0 and 1和1 and 0结果都为0,其它字符串和数据结构以同样的方式运算。
逻辑或or :跟 and 一样都是返回决定结果的值。如x or y,如果 x 为真,结果由x决定,结果为 x ;如果 x 为假,结果由y决定,返回y。非布尔值1 or 2结果为1,2 or 1结果为2;0 or 1和1 or 0结果都为1,其它字符串和数据结构以同样的方式运算。
位运算符
|位运算符 | 名称 | 例子 |
| ------------- |:----------------|: ------:|
|& | 按位与| 1&1=1,1&0=0,0&1=0,0&0=0。
只要对应的两个二进位都为1时,结果位才为1 |
|| | 按位或 |1|1=1,1|0=1,0|1=1,0|0=0。
只要对应的两个二进位有一个为1时,结果位就为1。 |
|^ | 按位异或 | 11=0,10=1,01=1,00=0。
当两个对应的二进位相异时,结果为1。 |
|~ | 取反 |如果a=2,那么~a=-(a+1) =-3。
记住~a=-(a+1)这个公式即可 |
|<< | 左移|运算数的各二进位全部左移n位,由"<<"右边的
数指定移动的位数,高位丢弃,低位补0。左移一
位都相当于乘以2的1次方,左移n位就相当于乘以2
的n次方。 |
| >> | 右移|把">>"左边的运算数的各二进位全部右移n位,
">>"右边的数指定移动的位数。右移一位相当于除
2,右移n位相当于除以2的n次方取商。|
成员运算符
在一个序列中成员资格的测试,如字符串,列表或元组。
|成员运算符 | 名称 | 例子 |
| ------------- |:----------------|: ------:|
|in |包含| ‘1’ in '1234'。
包含时为Ture,不包含时为False。 |
|not in |不包含| ‘1’ not in '1234'。
包含时为False,不包含时为Ture。 |
运算符优先级
由高到低排序
** 指数
~ 、+、 - ,取反, 正负号
* 、/、 %、 // 乘,除,取模和取整除
+、- 加号减号
>>、 << 右移,左移运算符
& 位与
^ | 位运算符
== 、!= 、< 、<= 、>、 >= 比较运算符
= 、-= 、+= 、%= 、/= 、//=、 = 、*= 赋值运算符
is、 is not 标识运算符
in、not in 成员运算符
and、or、not 逻辑运算符
另外,小括号可以改变优先级,有()的情况优先计算()中的表达式。