Python_0基础:5.运算符

一、算数运算符

下面以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('你好,世界')
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容