1.3 运算符号
算数运算符
+
:加法;序列连接
>>> 1+2
3
>>> "abc"+"abc"
'abcabc'
>>> [1,2,3]+[1,2,3]
[1, 2, 3, 1, 2, 3]
-
:减法
>>> 3-2
1
>>> 3.14-2.89
0.25
*
:乘法;序列重复
>>> 2*3
6
>>> "abc"*3
'abcabcabc'
>>> [1,2,3]*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
/
:除法,结果为小数
>>> 10/3
3.3333333333333335
>>> 9/2
4.5
//
:整除,如果存在小数,则结果为小数(整数+小数点)
>>> 10//3
3
>>> 9//2
4
>>> 10.0//3
3.0
>>> 9.0//2
4.0
**
:幂运算
>>> 2**4
16
>>> 81**0.5
9.0
%
:取余
>>> 10%3
1
>>> 10%-3 #(10%3)-3
-2
>>> -10%3 #-(10%3)+3
2
>>> -10%-3
-1
>>> 7 % 4
3
>>> 7 % -4 # 3 -> 3 + -4 -> -1
-1
>>> -7 % 4 # 3 -> -3 + 4 -> 1
1
>>> -7 % -4
-3
赋值运算符
主要针对的是变量
+=,-=,*=,/=,//=,**=,%=
归结为?=
a ?= 1
a = a ? 1
>>> a = 1
>>> a += 1
>>> a
2
>>> a -= 1
>>> a
1
>>> a *= 10
>>> a
10
>>> a /= 2
>>> a
5.0
>>> 10 /= 2
File "<stdin>", line 1
SyntaxError: cannot assign to literal
>>> a = 1
>>> b = 2
>>> a += b
>>> a
3
# 左边必须是变量 右边变量或者常量都行
比较运算符
运算的结果只能是布尔类型
>大于,<小于,>=大于等于,<=小于等于,==等于,!=不等于
注意:==
永远比的是对象数据的值
>>> 3 > 2
True
>>> 1 < 2
True
>>> 1 != 2
True
>>> 2 == 2
True
以上的代码都称之为是布尔表达式
逻辑运算符
运算的结果只能是布尔
and逻辑与,or逻辑或,not 逻辑非
and和or双目运算符,not 单目运算符,参与的数据必须是布尔类型
>>> 3 and 2
2
>>> 3 > 2 and 2 > 1
True
>>> 3 > 2 or 1 > 2
True
>>> not 3 > 2
False
>>> not False
True
>>> not True
False
移位运算符
&位与
,|位或
,<<左移
,>>右移
,^异或
>>> 12 & 7
4
"""
1100
0111 &
0100
"""
>>> 12 | 7
15
"""
1100
0111 |
1111
"""
>>> 2 << 4
32
"""
0010
00100000
2 * 2^4
"""
>>> 3 << 3
24 # 3 * 2^3
>>> 16 >> 2
4
"""
10000
00100
16 / 2^2
"""
>>> 10 ^ 7
13
"""
1010
0111 ^
1101
"""