Python第五课 - 运算符

9 运算符

9.1 运算符的概念

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

9.2 运算符的分类

  • 算数运算符
  • 赋值运算符
  • 比较运算符(关系运算符)
  • 逻辑运算符
  • 条件运算符(三元运算符)
9.2.1 算术运算符
  • 加法运算符 +
  • 减法运算符 -
  • 乘法运算符 *
  • 除法运算符 /(总会返回一个浮点数类型数据)
  • 整除 //(总会返回一个整形数据)
  • 取模%(返回两数相除的余数)
  • 幂运算 **
9.2.2 赋值运算符
  • 以"="形式存在,如 a=1 表示将整数1付给变量a。
  • 赋值运算符存在一种特殊写法,如 a += 3 与 a = a + 3完全等价。同理,也存在 a /= 3,a *= 3等记法。
a = 0
a + = 3
print(a)
a = 0
a = a + 3
print(a)

上述两段代码的实现效果是完全相同的。

9.2.3 比较运算符
  • 比较运算符用于比较两个值之间的关系,总是返回一个布尔值,关系成立则返回True,反之则返回False
比较运算符功能说明
>比较左侧值是否大于右侧值
<比较左侧值是否小于右侧值
>=比较左侧值是否大于等于右侧值
<=比较左侧值是否小于等于右侧值
==比较两个对象的值是否相等
!=比较两个对象的值是否不相等
is比较两个对象是否是同一个对象,比较的依据是对象的id
is not比较两个对象是否不是同一个对象,比较的依据是对象的id

下面介绍一下字符串之间比较大小的准则

  • 有如下的代码段
print('2'>'1')
print('2'>'11')
print('a'>'b')
print('aa'>'ab')
  • 上段代码的运行结果如下图所示
    在这里插入图片描述
    1.通过第一行和第三行的运行结果我们不难发现字符串的比较实际上就是字符串所对应的ASCII码的比较。'2’的ASCII码为50,'1’的ASCII码为49;'a’的ASCII码的值为97,'b’的ASCII码为98,则自然可得到以上结果。要查看一个字符的ASCII码,调用函数 ord() 即可。
    2. 我们可以发现Python在比较字符串时采取逐个比较的策略,即按照1中规则将左右两个字符串的首个字符进行比较,若已经比较出大小则不再进行后续字符的比较,否则两边都取下一个字符进行再一次的比较,以此类推直至比较出大小为止,最后得出的两个字符间的大小关系即为两个字符串间的大小关系。
9.2.4 逻辑运算符
not 逻辑非
  • 可对布尔值进行取反操作,即将True变为False,将False变为True
and 逻辑与
  • 可对符号两侧的值进行与运算,如 a and b的结果如下图所示
ab结果
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

可见只有a,b同时为True时,表达式结果才为True,否则为False。

逻辑或
  • 可对符号两侧的值进行或运算,a or b的运算结果如下图所示
ab结果
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

可见a,b只要有一个为True,则表达式的结果为True,只有两者都为False时才返回False。

非布尔值的与或运算

当我们对非布尔值进行与或运算时,Python会将这些值当成布尔值进行下一步的处理,最终返回原值

  • 非布尔值运算规则:

与运算找False,第一个值是False就不看第二个值而直接返回第一个值,第一个值是True则直接返回第二个值。

r1 = 0 and 1
print(r1)
r2 = 1 and 0
print(r2)
r3 = 1 and 2
print(r3)

运行结果
在这里插入图片描述


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

r1 = 1 or 2
print(r1)
r2 = 1 or 0
print(r2)
r3 = 0 or 1
print(r3)

运行结果
在这里插入图片描述

9.2.5 条件运算符

在这里插入图片描述
如上图所示,条件运算符的在运算过程中先对表达式的进行一个逻辑判断,若判断为True则执行语句1,否则则执行语句2,示例如下:

# 求a,b中的较大者
a = 1
b = 2
c = a if a > b else b

9.3 运算符的优先级

关于运算符的优先级顺序可参考以下链接中的表格,表格中的运算符自上而下优先级逐渐升高。
https://docs.python.org/3/reference/expressions.html#operator-precedence

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值