Python基础知识四 运算符

一、运算符

1、运算符的概念

  • 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。

2、运算符的分类

  • 算术运算符
  • 赋值运算符
  • 比较运算符(关系运算符)
  • 逻辑运算符
  • 条件运算符(三元运算符)

二、算术运算符

  • 加法运算符,表现形式 +
x = 1 + 2    # x = 3
x = 1.0 + 2    # x = 3.0
# 拼串
x = 'python' + ' java'    # x = python java
  • 减法运算符,表现形式 -
x = 5 - 2    # x = 3
x = 2 - 5    # x = -3
x = 'python' - ' java'    # TypeError: unsupported operand type(s) for -: 'str' and 'str'
  • 乘法运算符,表现形式 *
x = 8 * 2    # x = 16
x = 8 * 'a'    # x = 'aaaaaaaa'
x = 'a' * 'b'     # TypeError: can't multiply sequence by non-int of type 'str'
  • 除法运算符,表现形式 /
# 整数或者浮点数做除法运算总会返回浮点类型
x = 6 / 2    # x = 3.0
x = 6 / 0    # ZeroDivisionError: division by zero  除数不能为0
x = 'a' / 'b'    # TypeError: unsupported operand type(s) for /: 'str' and 'str'
x = 'a' / 2    # TypeError: unsupported operand type(s) for /: 'str' and 'int'
  • 整除 // ,只会保留计算后的整数位,总会返回一个整型
x = 7 // 2    # x = 3
  • 取模(取余) % ,求两个数相除的余数
x = 7 % 3    # x = 1
x = -7 % 3    # x = 2
  • 幂运算 ** ,求一个值的n次幂
x = 2 ** 3    # x = 8
x = 25 ** 0.5    # x = 5.0

三、赋值运算符

  • x = 3 可以将等号右边的值赋值给左边的变量
  • x += 3 相当于 x = x + 3
  • x -= 3 相当于 x = x - 3
  • x *= 3 相当于 x = x * 3
  • x **= 3 相当于 x = x ** 3
  • x /= 3 相当于 x = x / 3
  • x //= 3 相当于 x = x // 3
  • x %= 3 相当于 x = x % 3

四、比较运算符

比较运算符主要是比较2个值之间的关系,总会返回一个布尔类型。关系成立返回True,不成立Fasle。

  • > 比较左侧值是否大于右侧值
  • >= 比较左侧的值是否大于或等于右侧的值
  • < 比较左侧值是否小于右侧值
  • <= 比较左侧的值是否小于或等于右侧的值

如果出现多个字符的情况下,那么我们的比较方式是对位比较。如果对位比较出结果则直接返回结果,否则去下一位对位比较,直到比较出结果为止。

r = '2' > '1'    # True
r = '2' > '11'    # True

r = 'a' > 'b'    # False 97 > 98
r = 'c' < 'd'    # True

r = 'ab' > 'b'    # False
r = 'abc' < 'acd'    # True

特殊的比较方式

  • == 比较两个对象的值是否相等
  • != 比较两个对象的值是否不相等
  • is 比较两个对象是否是同一个对象,比较的是对象的id
  • is not 比较两个对象是否不是同一个对象,比较的是对象的id
a = 1
b = 1
print(a is b)    # True
print(id(a),id(b))    # 1829530640 1829530640

五、逻辑运算符

逻辑运算符主要用来做一些逻辑判断

1、逻辑非 not

  • not可以对符号右侧的值进行 非 运算。对于布尔值,非运算会对其进行取反操作,True变False,False变True。
  • 对于非布尔值,非运算会先将其转换为布尔值,然后再取反操作
  • 对于0、空字符串’’、空列表[]、空元组()、空字典{}、空对象None…这些表示空性的值,都会转换为False ,剩下的都是True

2、逻辑与 and

  • and可以对符号两侧的值进行 与 运算。只有在符号两侧的值都为True时,才会返回True;只要有一个False,就返回False
  • 与运算是找False的,如果第一个值为False,则不再看第二个值
r = True and True    # True
r = True and False    # False
r = False and True    # False
r = False and False    # False

3、逻辑或 or

  • or可以对符号两侧的值进行 或 运算。两个值中只要有一个为True,就会返回True
  • 或运算是找True的
r = True or True    # True
r = True or False    # True
r = False or True    # True
r = False or False    # False

4、非布尔值的与、或运算

当我们对非布尔值进行与、或运算时,Python会将其当做布尔值运算,最终会返回原值。

4.1 非布尔值与运算的规则

与运算是找False,如果第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值。

r = 1 and 2    # 2
r = 2 and 0    # 0
r = 0 and 2    # 0
r = None and 0    # None

4.2 非布尔值或运算的规则

或运算是找True,如果第一个值是True,则不看第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个值。

r = 1 or 2    # 2
r = 2 or 0    # 2
r = 0 or 2    # 2
r = None or 0    # 0

六、条件运算符(三元运算符)

在这里插入图片描述
条件运算符在执行时,会先对条件表达式进行求值判断:

  • 如果判断结果为True,则执行语句1,并返回执行结果。
  • 如果判断结果为False,则执行语句2,并返回执行结果。

语法:语句1 if 条件表达式 else 语句2

# 求a、b之间的最大值
a = 60
b = 8
m = a if a > b else b
print(m)    # 60

七、运算符的优先级

运算符优先级参照表:https://docs.python.org/3/reference/expressions.html#operator-precedence

a = 2 or 3 and 4
print(a)    # 2
  • 如果or和and的优先级一样高,从左往右运算,结果是4
  • 如果or比and的优先级高,从左往右运算,结果是4
  • 如果and比or的优先级高,结果是2

计算结果是2,说明and的优先级比 or的优先级高。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值