算数运算符
+ - * / **乘方 //整除 %取余
赋值运算符
= += -= *= /= %= **= //=
成员运算符
in not in
身份运算符
is not is
关系运算符
== != > >= < <=
逻辑运算符
and 全真就是真,有假就是假
or 有真就是真
not 取反
位运算
& 与 都为1是1,不同则0
| 或 有1就是1
~ 取反 0变1,1变0,最后+1
^异或 (相同是0,不同是1)
<<左移 m<<n m*2的n次方
>>右移 m>>n m//2的n次方
3&2
0000 0011
0000 0010
0000 0010
5|3
0000 0101
0000 0011
0000 0111
~6
0000 0110
1111 1001
1111 1010
3^5
0000 0011
0000 0101
0000 0110
2<<1
0000 0010
0000 0100
2>>1
0000 0010
0000 0001
十进制:
int()
二进制0b :
bin()
负数 -8
00001000
8取反
11110111
加1
11111000
八进制0o:
oct()
8=>2
710
111 001 000
8=>10
7*8^2+1*8^1
十六进制0x
hex()
16=>2
9ab16
1001 1010 1011 0001 0110
三目运算符
表达式?真:假
python:结果 if 表达式 else 结果
x,y=1,2
if x>y:
print(x)
else:
print(y)
print(x if x>y else y)
运算符优先级
1.算术运算符中的优先级顺序和数学运算先乘除后加减。
2.位运算符优先级低于算术运算符,其中移位运算符优先级又高于按位运算符。
3.关系运算符优先级低于位运算符和算术运算符。
4.逻辑运算符优先级又低于关系运算符,其中的优先级从高到低是not、and、or。
5.赋值运算符优先级最低
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘,除,取模和取整除
+ - 加法减法
>> << 右移,左移运算符
& 位 'AND'
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not and or 逻辑运算符