文章目录
1. 什么是运算符?
运算符就是Python中用于运算的符号。Python不仅仅支持加/减/乘/除等算术运算符,还支持关系运算符、赋值运算符、逻辑运算符和位运算符。
2. 算术运算符
2.1 加:+
作用:两个对象相加
a = 20
b = 30
print(a+b) # 两个数字相加,求和
a = "字符串1,"
b = "字符串2"
c = a + b # 两个字符串相加,即字符串拼接
print(c)
a = [1,2,3]
b = [3,4,5]
c = a + b # 两个列表相加,即列表合并
print(c)
2.2 减:-
作用:
- 负号,作为负数的符号
- 减法,用于两个数字做减法
a = -1 # 负数
b = 3
c = a - b # 两个数字做减法
print(c)
2.3 乘:*
作用:
- 两个数字做乘法
- 将一个字符串重复多次
a = 20
b = 3
c = a * b
print(c)
c = "abc"*10 # 将"abc"重复10次赋值给变量c
print(c)
2.4 除:/
作用:两个数字做除法
a = 20
b = 3
c = a / b
print(c)
2.5 取模:%
作用:将两个数做除法运算,返回余数。
a = 5
b = 3
c = a % b # 5除以3,商为1,余数为2,将余数保存至变量c
print(c)
2.6 幂:**
作用:x**y是计算x的y次幂
x = 2
y = 4
z = x**y # 计算2的4次幂,结果为16
print(z)
2.7 取整除://
作用:将两个数做除法,向下取接近商的整数(注意,不是四舍五入)。
a = 8
b = 3
c = a // b # 8除以3,约为2.666666,向下取整,则运算结果为2
print(c)
注意:关于向下取整,意思就是找与除法结果最接近,并且小于等于除法结果的整数。
3. 关系运算符
关系运算符就是判断两个对象的关系,如果关系成立,则返回True;关系不成立,则返回False。
运算符 | 说明 | 示例 |
---|---|---|
== | 等于:比较两个对象是否相等 | a = 1 b = 1 (a == b)返回True |
!= | 不等于:比较两个对象是否不相等 | a = 1 b = 1 (a != b)返回False |
> | 大于:判断x是否大于y | x = 2 y = 1 (x > y)返回True |
< | 小于:判断x是否小于y | x = 2 y = 1 (x < y)返回False |
>= | 大于等于:判断x是否大于等于y | x = 2 y = 1 (x >= y)返回True |
<= | 小于等于:判断x是否小于等于y | x = 2 y = 1 (x <= y)返回False |
4. 赋值运算符
运算符 | 说明 | 示例 |
---|---|---|
= | 简单赋值运算符 | c = 10 ,将整数10赋值给变量c |
+= | 加法赋值运算符 | a += b 等效于a = a + b |
-= | 减法赋值运算符 | a -= b 等效于a = a - b |
*= | 乘法赋值运算符 | a *= b 等效于 a = a * b |
/= | 除法赋值运算符 | a /= b 等效于 a = a / b |
%= | 取模赋值运算符 | a %= b 等效于 a = a % b |
**= | 幂赋值运算符 | a **= b 等效于 a = a ** b |
//= | 取整除赋值运算符 | a //= b 等效于 a = a // b |
5. 逻辑运算符
假设a = 10, b = 20:
运算符 | 说明 | 示例 |
---|---|---|
and | 逻辑与:判断多个条件同时为True时,返回True | (a > 10) and (b > 10) ,a > 10为假,b > 10为真,所以and 运算结果为假(False)。 |
or | 逻辑或:多个条件至少有一个条件为True时,返回True。 | (a > 10) and (b > 10) ,a > 10为假,b > 10为真,所以or 运算结果为真(True)。 |
not | 取反:对给定的条件取反,条件为True,该运算为False | b > 10 为True,则not (b > 10) 为False。 |
6. 位运算符
位运算符是对变量的二进制位进行运算。
运算符 | 说明 |
---|---|
& | 按位与运算:参与运算的两个二进制位,如果同时为1,则该位的运算结果为1,否则为0 |
| | 按位或运算:参与运算的两个二进制位,只要有一位为1,则该位的运算结果为1,否则为0 |
^ | 按位异或运算:参与运算的两个二进制位相同时(同为1或者同为0),则该位的运算结果为0,否则为1 |
~ | 按位取反运算:如果二进制为1,则取反后该位变为0;如果当前为0,则取反后为1 |
<< | 左移位运算符:运算数的各二进制位全部左移若干位,移动的位数由<< 运算符右边的数决定。高位丢弃,低位补0 |
>> | 右移位运算符:运算数的各二进制全部右移若干位,移动的位数由>> 运算符右边的数决定。低位丢弃,高位补0 |
6.1 按位与运算: &
a = 66
print("{:b}".format(a)) # a的二进制表示:0100 0010
b = 88
print("{:b}".format(b)) # b的二进制表示:0101 1000
print("{:b}".format(a & b)) # 按位与运算结果,二进制表示:100 0000
6.2 按位或运算:|
a = 66
print("{:b}".format(a)) # a的二进制表示:0100 0010
b = 88
print("{:b}".format(b)) # b的二进制表示:0101 1000
print("{:b}".format(a | b)) # 按位或运算结果,二进制表示:0101 1010
6.3 按位异或运算:^
a = 66
print("{:b}".format(a)) # a的二进制表示:0100 0010
b = 88
print("{:b}".format(b)) # b的二进制表示:0101 1000
print("{:b}".format(a ^ b)) # 按位或运算结果,二进制表示:0001 1010
6.4 按位取反运算:~
a = 66
print("{:b}".format(a)) # a的二进制表示:0100 0010
print("{:b}".format(~a))
6.5 左移位运算符:<<
a = 60
print("{:b}".format(a)) # a的二进制表示:0011 1100
print("{:b}".format(a<<2)) # a的二进制表示:1111 0000
6.6 右移位运算符:>>
a = 60
print("{:b}".format(a)) # a的二进制表示:0011 1100
print("{:b}".format(a>>2)) # a的二进制表示:0000 1111