一、算数运算符
下面以a=10,b=20为例进行计算:
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 两个对象相加 a + b 输出结果 30 |
- | 减 | 得到负数 或 一个数减去另一个数 a - b 输出结果 -10 |
* | 乘 | 两个数相乘 或 返回一个被重复若干次的字符串 a * b 输出结果 200 |
/ | 除 | b / a 输出结果 2 |
// | 取整除 | 返回商的整数部分 9 / 2 输出结果 4 、 9.0 / 2.0 输出结果 4.0 |
% | 取余 | 返回除法的余数 b % a 输出结果 0 |
** | 指数 | a ** b 为10的20次方 |
() | 小括号 | 提高运算优先级,比如:(1+2)*3 |
a = 3
b = 2
print(a + b) # 5
print(a - b) # 1
print(a * b) # 6
print(a / b) # 1.5
print(a // b) # 1
print(a % b) # 1
print(a ** b) # 9
print((5 + 1) * 2) # 12
扩展:
字符串的加法,是进行拼接的
# a = '123'
b = '456'
print(a + b) # 123456
在Python中,‘+’号两端都是字符串才可以进行加法运算
a = '123'
b = 456
# print(a + b) # 123456
print(a + str(b)) # # 123456
字符串的乘法,是将字符串重复多少次
a = '我爱你 你爱我 蜜雪冰城甜蜜蜜'
print(a * 3) # 我爱你 你爱我 蜜雪冰城甜蜜蜜我爱你 你爱我 蜜雪冰城甜蜜蜜我爱你 你爱我 蜜雪冰城甜蜜蜜
注意:混合运算时,优先级顺序为:
**
高于* / % //
高于+ -
,为了避免歧义,建议使用()来处理运算符优先级。并且,不同类型的数字在进行混合运算时,整数将会转换成浮点数进行运算。
二、赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 赋值运算符 | 把 = 号右边的结果 赋给 左边的变量,如 num = 1+2*3 ,结果num的值为7 |
- 单个变量赋值
a = 10
print(a) # 10
- 同时为多个变量赋值(使用等号连接)
b = c = 20
print(b) # 20
print(c) # 20
- 多个变量赋值(使用逗号分隔)
d, e, f = 1, 2, 3
print(d) # 1
print(e) # 2
print(f) # 3
三、复合赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
+= | 加法赋值运算符 | c += a <==> c = c + a |
-= | 减法赋值运算符 | c -= a <==> c = c - a |
*= | 乘法赋值运算符 | c *= a <==> c = c * a |
/= | 除法赋值运算符 | c /= a <==> c = c / a |
//= | 取整除赋值运算符 | c //= a <==> c = c // a |
%= | 取模赋值运算符 | c %= a <==> c = c % a |
**= | 幂赋值运算符 | c * *= a <==> c = c * * a |
示例:
- +=
a = 1
a += 2 # a = a + 2
print(a) # 3
- -=
c = 2
c -= 1 # c = c -1
print(c) # 1
- *=
b = 1
b *= 3 # b = b * 3
print(b) # 3
- /=
d = 3
d /= 2 # d = d / 2
print(d) # 1.5
- //=
e = 3
e //= 2 # e = e // 2
print(e) # 1
- %=
f = 3
f %= 5 # f = f % 5
print(f) # 3
- **=
g = 5
g **= 3 # g = g ** 3
print(g) # 125
四、比较运算符
比较运算符返回的都是Boolean类型的数据
以下假设变量a为10,变量b为20:
运算符 | 描述 | 实例 |
---|---|---|
== | 等于:比较对象是否相等 | (a == b) 返回 False |
!= | 不等于:比较对象是否不相等 | (a != b) 返回 True |
> | 大于:返回x是否大于y | (a > b) 返回 False |
>= | 大于等于:返回x是否大于等于y | (a >= b) 返回 False |
< | 小于:返回x是否小于y | (a < b) 返回 True |
<= | 小于等于:返回x是否小于等于y | (a <= b) 返回 True |
- '==' 恒等 判断 == 两边的变量是否一致
a = 10
b = 20
print(a == b) # False
- '!=' 不等 判断 != 两边的变量是否不一致
a = 10
b = 20
print(a != b) # True
扩展:<> python 2版本使用,python 3遗弃
- '>' 大于
print(10 > 20) # False
print(10 > 5) # True
- '>=' 大于等于
print(10 >= 10) # True
print(10 >= 20) # False
- '<' 小于
print(10 < 20) # True
print(10 < 5) # False
- '<=' 小于等于
print(10 <= 10) # True
print(10 <= 20) # True
五、逻辑运算符
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 只要有一个运算数是False,结果就是False 只有所有的运算数都为True,结果才是True 做取值运算时,取第一个为False的值,如果所有的值都为True时,取最后一个值 |
True and True and False 结果为False True and True True 结果为True |
or | x or y | 只要有一个运算数是True,结果就是True 只有所有的运算数都为False时,结果才是False 做取值运算时,取第一个为True的值,如果所有的值都为False时,去最后一个值 |
False or False or True 结果为 True False or False or False 结果为False |
not | not x | 布尔“非” 如果x为True,返回False; 如果x为False,返回True |
not True 结果为 False |
- and 与
and两边的数据,必须全都是True的时候,才会返回True;只要有一端返回的是False,那么就返回False。
# and两边都是False的时候,返回的是False
print(10 > 20 and 10 > 11) # False
# and一端是True,一端是False,返回的是False
print(10 > 5 and 10 > 11) # False
# and一端是False,一端是True,返回的是False
print(10 > 11 and 10 > 5) # False
# and两端都是True,则返回的是True
print(10 > 5 and 10 > 6) # True
- or 或者
or的两端只要一端是True,那么结果就是True
# or两端都是False,则返回的是False
print(10 > 20 or 10 > 21) # False
# or两端前面是True,后面是False,那么返回的是True
print(10 > 5 or 10 > 20) # True
# or两端前面是False,后面是True,那么返回的是True
print(10 > 20 or 10 > 5) # True
# or两端都是True,那么返回的是True
print(10 > 5 or 10 > 6) # True
- not 非 取反
print(not True) # False
print(not False) # True
print(not(10 > 20)) # True
性能提升:
面试题:以下代码的输出结果是什么,为什么会有这样的输出。
a = 34
a > 10 and print('hello world')
a < 10 and print('hello world')
a > 10 or print('你好,世界')
a < 10 or print('你好,世界')
- and的性能优化 短路与
a = 36
a > 10 and print('hello world') # hello world
# 当and前面的结果是False的情况下,那么后面的代码就不再执行了
a < 10 and print('hello world')
- or的性能优化 短路或
# or只要有一方为True,那么结果就是True
a = 38
a > 39 or print('你好,世界') # 你好,世界
a > 37 or print('你好,世界')
网友评论