算术表达式:
地板除:
>>> 10 // 3
3
>>> 5 // 2
2
>>> 5 // 3
1
取余:
>>> 10 % 3
1
>>> 10 % 4
2
幂运算:
>>> 4 ** 2
16
逻辑表达式:
>>> x = 1
>>> y = 0
>>> not x
False
>>> not y
True
>>> x and y # 一假即假
0
>>> x or y # 一真即真
1
>>> x is 1 #根据内存地址判断
True
>>> x is not 1
False
空列表是假:
>>> list1 = []
>>> not list1
True
关系表达式:
== 等于 #只判断数据元素
!= 不等于
>
<
>=
<=
字符串比较:
从左到有比较ASCII码,一旦得出结果就不在向右继续比较
ASCII码:
>>> ord('B')
66
a=97 ,b=98
A=65,
>>> 'baa' < 'abb'
False
位运算:
a = 1 , b = -1
a源码:0000 0001 反码:0000 0001 补码:0000 0001
b源码:1000 0001 反码:1111 1110 补码:1111 1111
源码的最高位是0则表示正数,1则表示负数。
反码=源码的符号位不变,其他取反
补码=反码+1
计算机中实际存在的是补码。
~a 按位取反
~a = - (a + 1)
a & b 按位与 (一假即假)
a | b 按位或 (一真即真)
a ^ b 按位异或 (相同为0,不同为1)
a << n 二进制数想左移n位
a >> n 二进制数想右移n位