1. 算术运算符
/
python中两数相除得到的是float
a = 6
b = 4
print(a / b)
>>> 1.5
幂
-
**
-
开平方
-
x**0.5
-
返回值是float
-
整除
-
//
-
向下取整
-
print(-5 // 2) print(5 // 2) >>> -3 >>> 2
-
取余
-
%
算术运算符在字符串中的使用
-
加法
-
str + str
-
s1 = 'abc' s2 = 'ef' print(s1 + s2) >>> abcef
-
-
数字跟str不能直接运算
-
-
乘法
-
字符串 * 数字 -->将字符串复制多个
-
s1 = 'abc' print(s1 * 2) >>> abcabc
-
-
字符串不能跟字符串相乘
-
-
其他运算都不支持
2. 赋值运算符
1.右边的值赋给左边
1)a = b = c = 'dad'
a = b = c = 'dad'
print(a, b, c)
>>> dad dad dad
2)交换两个变量
x, y = y, x
x = 1
y = 2
x, y = y, x
print(x, y)
>>> 2 1
3) 拆包
a.注意事项
-
需要拆的数据的个数要与变量的数据个数一支
-
可以对元组,列表,字典进行拆包
-
对字典进行拆包得到的key值而不是value的值
b.用拆包的形式定义变量
a, b, c = 1, 2, 3 #变量个数要与数据个数保持一致
print(a, b, c)
>>> 1 2 3
c.对列表
List = [1, 2, 3]
a, b, c = List
print(a, b, c)
>>> 1 2 3
d.对元组
Tuple = (1, 2, 3)
a, b, c = Tuple
print(a, b, c)
>>> 1 2 3
e.对字典
Dict = {'key1': 1,
'key2': 2}
a, b = Dict
print(a, b) #得到的是key
>>> key1 key2
4)元组的特殊定义
x = 'a', 'b', 'c'
print(x)
>>> ('a', 'b', 'c')
5)' * ' 表示可变长度
a, *b, c = 1, 2, 3, 4, 5, 6
print(a)
print(b)
print(c)
>>> 1
>>> [2, 3, 4, 5]
>>> 6
*a, b, c = 1, 2, 3, 4, 5, 6
print(a)
print(b)
print(c)
>>> [1, 2, 3, 4]
>>> 5
>>> 6
a, b, *c = 1, 2, 3, 4, 5, 6
print(a)
print(b)
print(c)
>>> 1
>>> 2
>>> [3, 4, 5, 6]
-
等号左边一定不能是常量或表达式
2.复合运算符
+=
-=
*=
/=
**=
x = 3
x **= 2
print(x)
>>> 9
//=
整除
x = 123
x //= 10
print(x)
>>> 12
%=
x = 123
x %= 10
print(x)
>>> 3
3. 比较运算符
1)常见比较运算符
>
在判断时可以写 1 < x < 3
<
=
>=
<=
!=
2)比较运算符在字符串中的使用
-
字符串之间比较大小,比较单个字符的ASCLL值的大小
-
'abc' < 'b'
-
'a' < 'b'
-
'abc' < 'abd'
-
-
数字与字符串之间做 == 运算结果是False
做 != 运算结果是 True
4. 逻辑运算符
1)常见逻辑运算符
a. 与 (and)
有 0 为 0 ,全 1 为 1
b. 或(or)
有 1 为 1,全 0 为 0
c. 非(not)
2)逻辑运算的短路问题
-
and连接多个部分时,判断到0结束
4 > 3 and print('Hello World') 4 < 3 and print('WY') >>> Hello World >>>
-
or 连接多个部分时,判断到1结束
4 > 3 or print('Hello World') 4 < 3 or print('WY') >>> >>> WY
3)逻辑运算的结果不一定是布尔值
-
and 取值时,取第一个为False的值,如果都为True ,取最后一个值
-
or 取值时,取第一个为True的值,如果都为False,取最后一个值
print(3 and 5 and 0 and 'Hello') print(0 or [] or 'ada' or 'ok') >>> 0 >>> ada
5. 位运算
1)按位与 &
转换为二进制,同为1则为1,否则为0
2)按位或 |
转换为二进制,有1则为1,否则为0
3)按位异或 ^
相同为0,不同为1
4)按位左移 <<
右边补0
5)按位右移 >>
左边补0
6)按位取反
0变1,1变0
6. 逻辑运算的优先级
not > and > or