浙教版(2019)高中信息技术必修一3-2-4运算符 课件(31张PPT)

文档属性

名称 浙教版(2019)高中信息技术必修一3-2-4运算符 课件(31张PPT)
格式 pptx
文件大小 243.8KB
资源类型 教案
版本资源 浙教版(2019)
科目 信息技术(信息科技)
更新时间 2021-06-23 11:37:49

图片预览

文档简介

第三章 算法的程序实现
3.2 Python语言程序设计


必修1《数据与计算》
3.2.4 运算符


学习目标
运算符
运算符
运算符的结合性
运算符的优先级
不同数值类型的True和False的情况


运算符
运算符
1 也叫操作符。
2 是对数据进行运算的符号。(用于执行程序代码运算。)
3 针对一个或多个操作数项目来进行运算。
4 参与运算的数据称为操作数或运算对象
·分类
按操作数的个数:
单目(或一元)运算符:~ -
双目(或二元)运算符:== + / *
三目(或三元)运算符:exp1 if contion else exp2
·定义


运算符
运算符
·按功能分类



算术运算符:( + - * / // % ** )
赋值运算符:( = 及其扩展 )
关系运算符:( == != >= <= > < )
位运算符:( & | ^ ~ << >> )
逻辑运算符:( and or not )
条件运算符:( exp1 if contion else exp2 )
成员运算符:( in not in )
身份运算符:( is is not )
分量运算符:( . )
强制类型转换:( 类型 )
索引运算符:( [ ] )
其它:( ( ) - )


运算符
运算符
·定义
同一优先级的运算符在表达式中操作的组织方向。
当一个运算对象两侧运算符的优先级别相同时, 运算对象与运算符的结合顺序
例如:
a-b+c
b两侧有-和+两种运算符的优先级相同,按先左后右结合方向,b
先与减号结合,执行a-b的运算,再执行加c的运算
·结合性


运算符
运算符
·种类:+ - * / // % **
1、结合性:从左向右
2、优先级:
** → +(正号)、-(负号) → * 、/、 //、% → +、-
1、算术运算符
注意:
1)当+为正号,-为负号时,这两个运算符为单目运算符,结合性为从右向左
2)除号( / )的运算结果一定是小数,不管是否除尽,也不管参与运算的是整数还是小数
3)求余( % )和整除( // ),只有当有小数参与运算时,其结果为小数,否则就是整数
4)求余结果的正负号与第一个数字没有关系,只由第二个数字决定


运算符
运算符
例如:
1、2 ** 3 = 8
2、2 * 3 = 6
3、5 / 2 = 2.5 4 / 2 = 2.0 -5 / 2 = -2.5
-5.5 / 2 = -2.75
4、5 // 2 = 2 -5 // 2 = -3 5 // 2.0 = 2.0
4.0 // 2 = 2.0 -5.5 // 2 = -3.0
5、5 % 2 = 1 5 % 2.0 = 1.0 4.0 % 2 = 0.0
-5 % 2 = 1 5.5 % 2 = 1.5 -5.5 % 2 = 0.5
1、算术运算符


运算符
运算符
·符号:=
·格式
变量标识符 = 常量、变量或表达式
·结合性
从右向左
·作用
将一个数据(常量、变量或表达式)赋给一个变量
·赋值转换规则
使赋值号右边表达式值自动转换成其左边变量的类型
·赋值表达式的值与变量值相等,且可嵌套
2、赋值运算符


运算符
运算符
例如:
a = 13; a = x; a = x + 2; a = b = 5
·复合赋值运算符
1.种类
+= -= *= /= %= **= //= &= |= ^= <<= >>=
2.格式:exp1 op= exp2
3.结合性:从右向左
4.优先级:赋值运算符都是同一等级
5.作用: exp1 = exp1 op exp2
2、赋值运算符


运算符
运算符
例如:
a += 13 a = a + 13
x *= y + 8 x = x * ( y + 8 )
m %= n m = m % n
·a = a + 1 和 a += 1 有何区别?
首先理解Python对象的三要素
1.id:是对象的唯一标识,是对象在内存中的存储地址
2.type:是对象的数据类型
3.value:是对象的值,即对象在内存中存放的数据
2、赋值运算符
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}5
10
11
20
对象5的地址:116958664
对象5的数据类型:整型
对象5的数值:5


运算符
运算符
·a = a + 1 和 a += 1 有何区别?
当a为不可变类型时,两者之间没有区别。
当a为可变类型时:(可变与不可变类型之后章节会介绍)
Python执行的过程:
2、赋值运算符
a = a + 1
1)读取右边的a的地址,计算a+1
2)读取左边的a的地址
3)将右边a+1传递给左a,编译器认为左右两个a不一致
a += 1
1)读取左边的a的地址,计算a+1
2)a+1传递给a自身,编译器认为左右两个a是同一个
1.执行效率:a += 1更快
2.a=a+1的两个a的地址不同;而a+=1中a的地址是一样的
注意


运算符
运算符
·种类
== != > < >= <=
·结合性
从左向右
·优先级
关系运算符都是同一等级
·关系表达式的值
是逻辑值“True(真)”或“False(假)”
注意:
<> 等同于 !=,但是在Python3.x中已经废止
3、关系运算符


运算符
运算符
例1:
a>b+c a>(b+c)
a>b!=c (a>b)!=c
a==b>c (a==b)>c
a=b>c a=(b>c)
例2:判断下列表达式
a=3;b=2;c=1
1)a>b a 2)a>c!=b a==b>c
3)a>b>c ac
4)d=ab>c d=a!=c>b
3、关系运算符
注意:
1.Python中允许x 2.d=a 3.复数不能进行大小比较,只能比较是否相等


运算符
运算符
【=】和【==】有何区别
·【=】
它是赋值语句,例如:a=2
语句执行后,变量a被创建,但是它没有结果(result),连None都没有,所以不能让赋值语句参与计算。例如:if(a=2)是语法错误。
函数调用时,用来给参数赋值是允许的。例如:f(1,2,c=3)
·【==】
它是关系运算符,比较运算是一种表达式
表达式总是会有一个结果(result),result是一个bool类型,True或False
关系运算符可以参加计算
注意:在Python中,下面两个表达式都为True
1==True 0==False
3、关系运算符


运算符
运算符
·种类
& | ^ ~ << >>
·结合性
从左向右 其中 ~ 为从右向左
·优先级
~ → >>、<< → & → ^ → |
·计算
位运算是按照数据在内存中的二进制位(Bit)进行操作的
注意:Python中的位运算符只能用来操作整数类型
4、位运算符


运算符
运算符
1.按位与运算符:&
例1:
a = 60 b = 13
4、位运算符
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}0
0
1
1
1
1
0
0
b的原码:
a的原码:
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}0
0
0
0
1
1
0
1
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}0
0
0
0
1
1
0
0
&
这是12在内存的二进制位
a & b=12
例2:
a = 60 b = -13
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}0
0
1
1
1
1
0
0
b的补码:
a的原码:
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}1
1
1
1
0
0
1
0
&
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}0
0
1
1
0
0
0
0
这是48在内存的二进制位
a & b=48
注意:
正数在内存的二进制位是以原码的形式存储
负数在内存的二进制位是以补码的形式存储
0的原码补码是一样的:0000 0000


运算符
运算符
1.按位或运算符:|
例1:
a = 60 b = 13
4、位运算符
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}0
0
1
1
1
1
0
0
b的原码:
a的原码:
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}0
0
0
0
1
1
0
1
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}0
0
1
1
1
1
0
1
|
这是61在内存的二进制位
a | b=61
例2:
a = 60 b = -13
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}0
0
1
1
1
1
0
0
b的补码:
a的原码:
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}1
1
1
1
0
0
1
1
|
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}1
1
1
1
1
1
1
1
这是-1在内存的二进制位
a | b=-1
注意:
已知补码如何求原码?
1)对补码进行补码操作,所得结果即原码
2)找到补码左右两边的第一个1不变,再将中间的数都取反,即得原码


运算符
运算符
1.按位异或运算符:^
例1:
a = 60 b = 13
4、位运算符
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}0
0
1
1
1
1
0
0
b的原码:
a的原码:
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}0
0
0
0
1
1
0
1
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}0
0
1
1
0
0
0
1
^
这是49在内存的二进制位
a ^ b=49
例2:
a = 60 b = -13
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}0
0
1
1
1
1
0
0
b的补码:
a的原码:
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}1
1
1
1
0
0
1
1
^
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}1
1
0
0
1
1
1
1
这是-49在内存的二进制位
a ^ b=-49


运算符
运算符
1.按位取反运算符:~
例1:
a = 13 b = -13
4、位运算符
a的原码:
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}0
0
0
0
1
1
0
1
~
~ a = -14
b的补码:
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}1
1
1
1
0
0
1
1
~
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}0
0
0
0
1
1
0
0
这是12在内存的二进制位
~ b = 12
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}1
1
1
1
0
0
1
0
这是-14在内存的二进制位


运算符
运算符
1.左移运算符:<<
例1:
a = 13 c = 2
4、位运算符
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}0
0
0
0
1
1
0
1
a的原码:
<<
这是52在内存的二进制位
这两位删除
例2:
b = -13 c = 2
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}0
0
0
0
1
1
0
1
0
0
a << c=52
这两位增加添0
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}1
1
1
1
0
0
1
1
b的原码:
<<
这是-52在内存的二进制位
这两位删除
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}1
1
1
1
0
0
1
1
0
0
b<这两位增加添0


运算符
运算符
1.右移运算符:>>
例1:
a = 13 c = 2
4、位运算符
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}0
0
0
0
1
1
0
1
a的原码:
>>
这是3在内存的二进制位
这两位删除
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}0
0
0
0
0
0
1
1
0
1
a >> c=3
这两位增加添0


运算符
运算符
1.右移运算符:>>
例2:
b = -13 c = 2
4、位运算符
b的原码:
>>
这是60在内存的二进制位
这两位删除
b >> c=60
这两位增加添0
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}1
1
1
1
0
0
1
1
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}0
0
1
1
1
1
0
0
1
1


运算符
运算符
·种类
not(非) and(与) or(或)
·结合性
从左向右 其中 not 为从右向左
·优先级
not → and → or
5、逻辑运算符


运算符
运算符
·逻辑运算真值表
5、逻辑运算符
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}a
b
not a
not b
a and b
a or b
























注意:
真--------True
假--------False
说明:
1)当a和b都为真时,a and b才为真,否则为假
2)当a和b都为假时,a or b才为假,否则为真


运算符
运算符
例1:
a<=x and x<=b (a<=x) and (x<=b)
a==b or x==y (a==b) or (x==y)
not a or a>b (not a) or (a>b)
例2:
a = 1 b = 0 c = 3 d = 5
1) not a 2)not b
3) d and ac or b
5) b and d!=0 and aa
7) a and b or c>0 or not d 8)not d or c>=c and not b or c or d>a
5、逻辑运算符
False
True
False
True
True
False
True
True


运算符
运算符
·短路特性
判定逻辑表达式True或False时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能判定表达式的True或False时,才执行该运算符。
例1:
a = 1 b = 0 c = 3 d = 5
1) b and d!=0 and a 2)a>b or b!=0 or c>a
3) a and b and c>0 or not d
4)not d or c>=c and not b or c or d>a
5、逻辑运算符
False
True
False
True
说明:
1)左侧第一个表达式中,都是and逻辑运算符,b=0为假,整个表达式已经可以判定为假,and之后的运算符都不执行。
2)左侧第一个表达式中,都是or逻辑运算符,a>b为真,整个表达式已经可以判定为真,or之后的运算符都不执行。


运算符
运算符
·格式:
exp1 if contion else exp2
说明:condition 是判断条件,exp1 和 exp2 是两个表达式
1)若condition 成立(结果为真),就执行 exp1,并把 exp1 的结果作为整个表达式的结果
2)若 condition 不成立(结果为假),就执行 exp2,并把 exp2 的结果作为整个表达式的结果。
例如:max = a if a>b else b
·支持嵌套
例如:
a if a>b else c if c>d else d a if a>b else (c if c>d else d)
6、条件运算符


运算符
运算符
7、成员运算符
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}运算符
描述
in
如果在指定的序列中找到值返回 True,否则返回 False。
not in
如果在指定的序列中没有找到值返回 True,否则返回 False。
例如:
a = 1; b = 6; list = [1, 2, 3, 4, 5 ]
if ( a in list ):
print ("1 - 变量 a 在给定的列表中 list 中")
if ( b not in list ):
print ("2 - 变量 b 不在给定的列表中 list 中")
else:
print ("2 - 变量 b 在给定的列表中 list 中")
输出结果:
1 - 变量 a 在给定的列表中 list 中
2 - 变量 b 在给定的列表中 list 中


运算符
运算符
8、身份运算符
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}运算符
描述
is
is 是判断两个标识符是不是引用自一个对象。即地址相同
is not
is not 是判断两个标识符是不是引用自不同对象。即地址不同
·is 和 == 有何区别?
1)is 判断的是两个标识符是否是同一个对象。同一个对象的地址相同
2)== 判断的是两个标识符在内存里存储的数值是否相同


不同数值类型的True和False的情况
运算符
·真值表
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}数据类型
值(False)
值(True)
布尔
False(与0等价)
True(与1等价)
数值
0 、 0.0
非零的数值
字符串
''、""(空字符串)
非空字符串
容器
[]、()、{}、set()
至少有一个元素的容器对象
None
None
非None对象


运算符的优先级
运算符
·优先级表
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}运算符说明
Python运算符
优先级
结合性
优先级顺序
小括号
( )
20


索引运算符
x[i] 或 x[i1: i2 [:i3]]
19

|
属性访问
x.attribute
18

|
乘方
**
17

|
按位取反
~
16

|
符号运算符
+(正号)、-(负号)
15

|
乘除
*、/、//、%
14

|
加减
+、-
13

|
位移
>>、<<
12

|
{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}运算符说明
Python运算符
优先级
结合性
优先级顺序
按位与
&
11

|
按位异或
^
10

|
按位或
|
9

|
关系运算符
==、!=、>、>=、<、<=
8

|
赋值运算符
=、%=、/=、//=、-=、+=、*=、**=、>>=、<<=
7

|
is 运算符
is、is not
6

|
in 运算符
in、not in
5

|
逻辑非
not
4

|
逻辑与
and
3

|
逻辑或
or
2

|
三目运算符
exp1 if contion else exp2
1