二、运算符和表达式
运算符分为算术运算符、比较运算符、赋值运算符、位运算符、逻辑运算符、成员运算符、身份运算符。
2.1算术运算符
a=10,b=20
运算符 | 解释 | 实例 |
---|---|---|
+ | 将两个对象(不止是数字)进行相加 | a+b结果为30 |
- | 将两个数进行相减 | a-b结果为-10 |
* | 将两个数进行相乘 | a*b结果为200 |
/ | 除法 | b/a结果为2 |
% | 取模,返回余数 | b%a结果为0 |
** | 幂运算 | a**b表示为10的20次方 |
// | 取证除 | 10//3结果为3 |
2.2比较运算符
a=10,b=20
运算符 | 解释 | 实例 |
---|---|---|
== | 判断是否等于 | (a==b)返回的是False |
!= | 判断是否不等 | (a!=b)返回的是True |
> | 判断是否前者大于后者 | (a>b)返回False |
< | 判断是否前者小于后者 | (a<b)返回True |
>= | 判断是否前者大于等于后者 | (a>=b)返回False |
<= | 判断是否前者小于等于后者 | (a<=b)返回True |
2.3赋值运算符
a=10,b=20
运算符 | 解释 | 实例 |
---|---|---|
= | 简单的赋值运算符 | b=a 将a的值赋给b |
+= | 加法赋值运算符 | b+=a 等同于b=b+a |
-= | 减法赋值运算符 | b-=a 等同于b=b-a |
*= | 乘法赋值运算符 | b*=a 等同于b=b*a |
/= | 除法赋值运算符 | b/=a 等同于b=b/a |
%= | 取模赋值运算符 | b%=a 等同于b=b%a |
**= | 幂赋值运算符 | b**=a 等同于b=b**a |
//= | 取整除赋值运算符 | b//=a 等同于b=b//a |
2.4赋值运算符
a=10,b=20
运算符 | 解释 | 实例 |
---|---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | (a&b)的十进制结果为12 二进制结果为00001100(一般为8位) |
l(这里是小写的L 原因:作者不知道如何打上正确的符号) | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 | (a lb)输出结果61 , 二进制解释 : 00111101 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 | (a^b)输出结果49,二进制解释: 00110001 |
~ | 按位取反运算符:对数据的每个二进制位取反即把1变为0,把0变为1。~x类似于-x-1 | (~a)输出结果-61, 进制解释 : 11000011, 在一个有符号二进制数的补码形式。 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由“< < ”右边的数指定移动的位数,高位丢弃,低位补0。 | a << 2输出结果240,二 进制解释: 11110000 |
>> | 右移动运算符:把">>“左边的运算数的各二进位全部右移若干位,”>> "右边的数指定移动的位数 | a>>2输出结果15,进制解释:00001111 |
2.5逻辑运算符
a=10,b=20
运算符 | 解释 | 实例 |
---|---|---|
and | 布尔“与” 如果x为False,x and y返回False,否则它返回y的计算值 | (a and b)返回20 |
or | 布尔"或" 如果x是True,它返回x的值,否则它返回y的计算值 | (a or b)返回10 |
not | 布尔"非" 如果x为True,返回False.如果x为False ,它返回True | not(a and b)返回False |
2.6成员运算符
a=10,b=20
运算符 | 解释 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回True,否则返回False | x 在y序列中,如果x在y序列中返回True |
not in | 如果在指定的序列中没有找到值返回True ,否则返回False | x不在y序列中,如果x不在y序列中返回True |
2.7身份运算符
a=10,b=20
id(x)函数用于获取对象的内存地址
运算符 | 解释 | 实例 |
---|---|---|
is | is 是判断两个标识符是不是引自一个对象 | x is y,类似id(x)==id(y),如果引用的是同一个对象则返回True ,否则返回False |
is not | is not 是判断两个表示是不是引自不同对象 | x is not y,类似id(a) != id(b)。如果引用的不是同一个对象则返回结果True,否则返回False。 |