【Python入门与进阶】运算符与运算符优先级

【转发】 【Python入门与进阶】运算符与运算符优先级

0:导语

》》a:加减乘除小学都会,重点看下,有的符号有特殊的含义 比如加号
》》b:三元运算行比较特殊
》》c:运算符的优先级,记住常用的,其他查表。

1:运算符与它的分类

比如 加减乘除 都属于运算符

你知道的。

定义: 运算符可以对一个值或多个值进行运算或各种操作

  • 运算符的分类:
    1.算术运算符
    2.赋值运算符
    3.比较运算符(关系运算符)
    4.逻辑运算符
    5.条件运算符(三元运算符)

2:算术运算符

有:

file

file

注意特殊几个符号的特殊含义

》》 a: 加号 (如果是两个字符串之间进行加法运算,则会进行拼串操作)

》》 b:乘号(如果将字符串和数字相乘,则会对字符串进行复制操作,将字符串重复指定次数)

》》 c: ** 幂运算 (求一个值的几次幂)

》》 d: 求商 使用// 求余数 使用%

演示一下:

file

3:赋值运算符

a = 3

知道在做什么吗?

= 可以将等号右侧的值赋值给等号左侧的变量

那么 给 a加上5 ?

a = a + 5

file

其他运算符类似。

(确实比Java简单, Java的 += 这种写法还有 隐式转换)

4:关系运算符

比如:

3 > 4

定义:关系运算符用来比较两个值之间的关系,总会返回一个布尔值
如果关系成立,返回True,否则返回False

file

还有以下其他运算符:

比较左侧值是否大于右侧值
= 比较左侧的值是否大于或等于右侧的值
< 比较左侧值是否小于右侧值
<= 比较左侧的值是否小于或等于右侧的值
== 比较两个对象的值是否相等
!= 比较两个对象的值是否不相等

有的符号有特别含义

相等和不等比较的是对象的值,而不是id

(这个又比Java明确了,那怎么两个对象是否是同一个,怎么判断?)

is 比较两个对象是否是同一个对象,比较的是对象的id
is not 比较两个对象是否不是同一个对象,比较的是对象的id

(这个又比Java明确了)

5:字符串的比较

file

在Python中可以对两个字符串进行大于(等于)或小于(等于)的运算,

在Python中字符串的比较原理

当对字符串进行比较时,实际上比较的是字符串的Unicode编码
》》1: 比较两个字符串的Unicode编码时,是逐位比较的
》》2:利用该特性可以对字符串按照字母顺序进行排序,但是对于中文来说意义不是特别大

file

file

注意:如果不希望比较两个字符串的Unicode编码,则需要将其转换为数字然后再比较

file

6:逻辑运算符

首先,此处逻辑跟语文的 因为,所以。 如果,那么。 没有关系

定义:逻辑运算符主要用来做一些逻辑判断,指 not , and, or

》》1:not 逻辑非
not可以对符号右侧的值进行非运算
对于布尔值,非运算会对其进行取反操作,True变False,False变True
对于非布尔值,非运算会先将其转换为布尔值,然后再取反

file

(注意它的规则,以点带面,学 and not )

》》2: and 逻辑与

定义:and可以对符号两侧的值进行与运算

(同真为真,有假则假)

file

file

注意:蓝框内的打印没有执行,是为什么?

因为:Python中的与运算是短路的与,如果第一个值为False,则不再看第二个值

》》3: or 逻辑或

定义: or 可以对符号两侧的值进行或运算

(有真为真,全假则假)

file

file

注意:蓝框代码没有执行,是为什么?

因为: Python中的或运算是短路的或,如果第一个值为True,则不再看第二个值

7: 非布尔值的与或运算

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

file

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

file

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

(只需要注意,实际开发不会搞这么变态)

8:条件运算符(三元运算符)

比如两个整数 a 和 b 比较

a > b

结果是大还是小?

显然,跟它们被赋的值有关。

a = 10
b = 20

也可以是

a = 20
b = 10

所以需要判断

定义 条件运算符也叫三元运算符

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

》》 执行流程:

1:执行条件 得到一个 bool 值
2:True 结果是 if 前面
3:False 结果是 else 后面

file

9:运算符的优先级

比如:

a = 1 + 2 * 3

结果是 9 还是 7? 显然是7

在Python运算也有优先级,比如先乘除 后加减

运算符的优先级可以根据优先级的表格来查询

file

(关于优先级的表格,你知道有这么一个东西就够了,千万不要去记,人的大脑跟硬盘差不多,记重点)

分析一下


在表格中位置越靠下的运算符优先级越高,优先级越高的越优先计算
如果优先级一样则自左向右计算
在开发中如果遇到优先级不清楚的,则可以通过小括号来改变运算顺序

file

file

(其实加小括号 就更不会有歧义)

》》 逻辑运算符可以连着使用

file

发布了47 篇原创文章 · 获赞 13 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/u013621398/article/details/104635919
今日推荐