第二天 第二章 运算符
一、算数运算符
算数运算符是处理四则运算的符号,在数字处理中应用的最多。
| 运算符 | 说明 | 实例 | 结果 |
| + | 加 | 1+2 | 3 |
| - | 减 | 5-2 | 3 |
| * | 乘 | 2*3 | 6 |
| / | 除 | 7/2 | 3.5 |
| % | 求余数 | 7%2 | 1 |
| // | 除法结果取整数 | 7//2 | 3 |
| ** |
幂,返回x的y次方 |
2**4 | 16,即24 |
注:用%计算余数,如果除数是负数,那么结果也是负数。用/或//计算时,除数不能为0,否则会出现异常(ZeroDivisionError: 具体异常)。
二、赋值运算符
赋值运算符主要用来为变量赋值。将右边的值赋给左边的变量。
| 运算符 | 说明 | 举例 | 展开形式 |
| = | 赋值 | x=y | x=y |
| += | 加赋值 | x+=y | x=x+y |
| -= | 减赋值 | x-=y | x=x-y |
| *= | 乘赋值 | x*=y | x=x*y |
| /= | 除赋值 | x/=y | x=x/y |
| %= | 取余赋值 | x%=y | x=x%y |
| **= | 幂赋值 | x**=y | x=x**y |
| //= | 取整除赋值 | x//=y | x=x//y |
三、比较(关系)运算符
比较(关系)运算符用于对变量或表达式的结果进行大小、真假做比较,如果比较为真则返回True,否则返回False。
| 运算符 | 作用 | 举例 | 结果 |
| > | 大于 | 'a'>'b' | False |
| < | 小于 | 156<456 | True |
| == | 等于 | 'c'=='c' | True |
| != | 不等于 | 'y'!='t' | True |
| >= | 大于或等于 | 479>=426 | True |
| <= | 小于或等于 | 62.45<=45.5 | False |
注:判断一个变量是否在两个值之间时,可以用“值1 < 变量 < 值2”的形式,如:0 < a < 100,表示a大于0并且小于100。
四、逻辑运算符
逻辑运算符是对布尔值进行的运算,结果仍是一个布尔值。
| 运算符 | 含义 | 用法 | 结合方向 |
| and | 逻辑与 |
op1 and op2 |
从左到右 |
| or | 逻辑或 |
op1 or op2 |
从左到右 |
| not | 逻辑非 | not op | 从右到左 |
使用逻辑运算符时,运算结果如下:
| 值1 | 值2 | 值1 and 值2 |
值1 or 值2 |
not 值1 |
| True | True | True | True | False |
| True | False | False | True | False |
| False | False | False | False | True |
| False | True | False | True | True |
五、位运算符
位运算时把数字看作二进制数来计算,有位与(&)、位或(|)、位异或(^)、取反(~)、左位移(<<)和右位移(>>)运算符。
1. 位与运算(&)法则:只有对应数位都是1时,结果数位才是1,否则为0。如果精度不同,则结果精度与精度高的操作数相同。看下表:12&8
| 值1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | ||||
| 值2 | & | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | |||
| 结果 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
2. 位或运算(|)法则:只有对应数位都是0时,结果数位才是0,否则为1。如果精度不同,则结果精度与精度高的操作数相同。看下表:4|8
| 值1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | ||||
| 值2 | | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | |||
| 结果 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
3. 位异或运算(^)法则:对应数位相同时(同时为0或同时为1),结果数位才是0,否则为1。如果精度不同,则结果精度与精度高的操作数相同。看下表:31^22
| 值1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | ||||
| 值2 | ^ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | |||
| 结果 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
4. 位取反运算(~)法则:对应数位取反,1改为0,0改为1。看下表:~123
| 值 | ~ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | |||
| 结构 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
5. 左移位运算(<<)法则:将一个二进制数向左移动指定位数,左边(高位)溢出的位被丢弃,右边(低位)的空位用0补齐。左移位运算相当于乘以2的n次幂。
| 十进制:48 | 00110000 | ||
| 十进制:96 | 高位0溢出,舍弃 | 01100000 | 左移一位,低位用0补齐 |
| 十进制:192 | 高位0溢出,舍弃 | 11000000 | 左移一位,低位用0补齐 |
6. 右移位运算(>>)法则:将一个二进制数向右移动指定位数,右边(低位)溢出的位被丢弃,而填充左边(高位)时,如果最高位时0(正数),则填入0,如果最高位时1(负数),则填入1。右移位运算相当于除以2的n次幂。
| 十进制:48 | 最高位是0 | 00110000 | |
| 十进制:24 | 右移后补0 | 00011000 | 舍弃溢出的1个0 |
| 十进制:-80 | 最高位是1 | 10110000 | |
| 十进制:-20 | 右移后补1 | 11101100 | 舍弃溢出的2个0 |
六、运算符的优先级
运算规则:优先级高的先执行,同一优先级的操作从左到右执行。小括号的最先执行。
| 运算符 | 说明 |
| ** | 幂 |
| ~、+、- | 取反、正号、负号 |
| *、/、%、// | 乘、除、取余、取整 |
| +、- | 加、减 |
| <<、>> | 左移运算符、右移运算符 |
| & | 位与运算符 |
| ^ | 位异或运算符 |
| | | 位或运算符 |
| <、<=、>、>=、!=、== | 小于、小于等于、大于、大于等于、不等于、等于 |

浙公网安备 33010602011771号