第3章 运算符与表达式ppt课件.ppt

上传人:春哥&#****71; 文档编号:16976415 上传时间:2022-05-20 格式:PPT 页数:36 大小:461.50KB
返回 下载 相关 举报
第3章 运算符与表达式ppt课件.ppt_第1页
第1页 / 共36页
第3章 运算符与表达式ppt课件.ppt_第2页
第2页 / 共36页
点击查看更多>>
资源描述

《第3章 运算符与表达式ppt课件.ppt》由会员分享,可在线阅读,更多相关《第3章 运算符与表达式ppt课件.ppt(36页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第3章 运算符与表达式第第3章章 运算符与表达式运算符与表达式对于不同的对象类型,有不同的运算和表达式。运算所使用的运算符可以理解为语言模型中的一个单词,而表达式则可以理解为一个由多个单词组成的短语(它不是一个完整的语句),就像英语中的短语(词组)一样。本章以数字类型对象为主介绍各种运算符、表达式、常用函数、对象所使用的主要方法和运算符优先级问题,同时介绍字符串类型和字节串对象。3.1 数字对象的运算数字对象的运算3.2 运算符的优先级与结合性运算符的优先级与结合性3.3 常用函数常用函数3.4 常用的字符串方法常用的字符串方法3.5 有关字节串和字节数组的方法有关字节串和字节数组的方法3.1

2、 数字对象的运算数字对象的运算所有的数字对象可以进行算术运算、关系运算、逻辑运算、移位和按位逻辑运算。3.1.1 算术运算算术运算所有的数字对象可以使用如表3-1所示的算术运算,用运算符、圆括号将对象、变量、函数等连接起来的式子称为数学表达式。在表3-1中,假定a、b为对象。运算运算意义描述意义描述运算运算意义描述意义描述a + b加法a * b乘方(ab)a - b减法a % b取余数(a mod b)a * b乘法+ a一元加法a / b除法- a一元减法a / b截取除法 表3-1 算术运算符说明: (1)截取除法(/)的结果是整数,并且整数和浮点数均可应用。(2) 除法(/):在Pyt

3、hon 2.X中,如果操作数是整数,除法结果取整数,但在Python 3.X中,结果是浮点数。(3)对浮点数来说,取余运算的结果是“a / b”的浮点数余数,即“a (a/b)*b”。(4)对于复数,取余和截取除法是无效的。示例: 100/333 100/333.333333333333336 100%31 5.5/22.0 5.5/22.75 5.5%21.5在算术表达式中,运算符的优先级(分4级)是:一元运算符、乘方、(乘法、除法、包括截取除法和取余)、加减法。3.1.2 关系运算关系运算关系运算使用表3-2的关系运算符,运算结果是True或False。关系运算in表示一个对象是否在一个集

4、合中(这里说 的集合是一个广义概念,包括列表,元组、字符串等),当然运算结果也是True或False。运算运算意义描述意义描述运算运算意义描述意义描述a = b大于等于a b大于a != b不等于x in x 在集合中? 表3-2 关系运算符注意:注意:(1)对于比较运算符,可以有更复杂的写法,如:“abc”,这相当于“ab and bc”,又如:“ac”,相当于“ac”,“a=bc”相当于“a=b and bc”。(2)不允许对复数进行比较。(3)只有当操作数是同一类型时,比较才有效。对于内置数字对象,当两个操作数类型不一致时,Python将进行类型的强制转换:当操作数之一为浮点数,则将另一

5、个操作数也转换为浮点。示例:示例: 2+3j1+2jTraceback (most recent call last): File , line 1, in TypeError: unorderable types: complex() complex() 2.52True 2+3j1Traceback (most recent call last): File , line 1, in TypeError: unorderable types: complex() int() 2.52.55False 2.5TrueTrue 2.55False关系运算符的优先级不分级,关系运算符的优先级不分

6、级,6个运算符个运算符、=、=和和!=属于同一级。在这一点上,属于同一级。在这一点上,Python语言与其它语言不同(其它语言一般定语言与其它语言不同(其它语言一般定义义、和和=是同一级,是同一级,=和和!= 是同一级)是同一级)6个关于数字的关系运算符比运算符个关于数字的关系运算符比运算符in的优先级的优先级高。高。特别注意:特别注意:当操作数是浮点数时,因为浮点数有有效位(15位)的问题,实施比较运算时,可能会出现谬论!下面的示例实际上是论证“一个数加上一个很小的数大于这个数本身”,结果由于加上的“一个很小的数”小于浮点数的表示精度,等于没有加上这个很小的数,所以出现错误结论。 1.0+1

7、.0e-161.0# 这个结论是错误的。False而: 1.0+1.0e-151.0# 这个结论是正确的。True3.1.3 逻辑运算逻辑运算逻辑运算符只有3个,它们的优先级(分3级)是:not、and、or。用逻辑运算符描述的表达式称逻辑表达式或布尔表达式。not a: 如果a为False,则返回1,否则返回0。a and b:如果a为False,则返回a,否则返回b。a or b:如果a为False,则返回b,否则返回a。注意:注意:由于逻辑运算符的结合性是从左至右,对于and运算符,只有and左边操作数为True时,才计算右边的操作数,否则,是不计算右边的操作数的。例如: s = 1,2

8、,3 10-10 and s.append(4)# and运算符左边为0,右边无动作0 s1, 2, 3# 所以,s的值不变 10+10 and s.append(4)# and运算符左边为1,右边有动作 s1, 2, 3, 4# 所以,s的值发生变化同样:同样:对于对于or运算符,只有运算符,只有or左边操作数为左边操作数为False时,才计算右边的操时,才计算右边的操作数,否则,同样是不计算右边的操作数的。作数,否则,同样是不计算右边的操作数的。3.1.4 移位和按位逻辑运算移位和按位逻辑运算移位和按位逻辑运算符仅能用于整数。它们的优先级(分5级)是:按位求反、左右移位、按位与、按位异或、

9、按位或。如表3-3所示。表3-3移位和按位逻辑运算符运算运算意义描述意义描述运算运算意义描述意义描述a b右移a b按位异或a & b按位与 a按位求反移位和按位逻辑运算假定整数以二进制补码形式表示,且符号位可以向左无限扩展。下面是实例: 13-14 hex(0 xf hex(0 x11e | 0 x2001)0 x211f3.1.5 条件表达式条件表达式Python语言中条件表达式的形式如下: if else 其中,if和else这两个关键字充当了条件表达式的运算符。表达式的计算是:先计算的值,如果这个值为True,计算,否则计算。如果条件表达式写在赋值语句里,如:y = if else 条

10、件表达式的结合性是从右至左。条件表达式的结合性是从右至左。3.1.6 标准类型操作符标准类型操作符标准类型操作符又称标准类型运算符。标准类型操作符是针对所有Python对象的,也就是说,所有Python对象都可以运用标准类型操作符来操作。它们是:关系运算符(、=、=、!=)、身份比较操作符(is、is not)和逻辑运算符(not、and、or)。3.2 运算符的优先级与结合性运算符的优先级与结合性如果在一个表达式中有多个不同的运算符,哪个运算符先执行运算?哪个运算符后执行运算?这得有一个规则。在Python语言中,所有的运算按规定的优先级操作。而结合性是指运算的计算是从左开始还是从右开始,P

11、ython的运算符绝大多数是从左开始,只两个特例,乘方(*)和条件表达式运算从右开始。优先级优先级运算符及操作数形式运算符及操作数形式意义描述意义描述0., (.), .创建列表、元组和字典1si, si:j索引、切片2s.attr属性3f(.)函数调用4+a, -a, a一元运算符5a*b乘方(从右至左运算)6a*b, a/b, a/b, a%b乘法、除法、截取除法、取余数7a+b, a-b加法、减法8ab左移、右移9a&b按位与10ab按位异或11a|b按位或12ab, ab, a=b, a=b, a!=b小于、小于等于、大于、大于等于、等于、不等于13a is b, a is not b

12、身份检查14a in s, a not in s序列成员检查15not a逻辑非16a and b逻辑与17a or b逻辑或18a if b else c条件表达式运算符表3-4 Python语言中运算符的优先级3.3 常用函数常用函数常用函数可能是来自Python系统定义的常用内置函数,也可能是来自某一个函数库。本节介绍常用内置函数和数学类函数库中的常用函数。3.3.1 常用内置函数常用内置函数Python语言有许多内置函数,用户可以在任何时候使用它们。内置函数包含在builtins模块(对于Python 2.X,模块名为_builtin_)中。通过使用help(builtins)函数可以

13、查阅所使用的版本的所有内置函数。表3-5给出了Python语言的常用内置函数(见教材见教材P28)。要注意的是:表中的函数不一定都是针对数字类型设计的函数,某些函数可能与数字类型以外的对象类型(例如字符串、列表、元组等)有关。举例举例:input()函数函数input()函数的一般格式:x = input(提示串提示串)x得到的是一个字符串。得到的是一个字符串。 x = input(x=)# 直接输入12.5,x是一个数字的字符串 x12.5 x = input(x=)# 直接输入abcd,x是字符串abcd xabcd x = float(input(x=) x123.77print()函数

14、函数print()函数的一般格式:print(对象对象1,对象对象 2,.,sep= ,end=n,file=sys.stdout)可以指定输出对象间的分隔符、结束标志符,输出文件。如果缺省这些,分隔符是空格,结束标志符是换行,输出目标是显示器。例如: print(1,2,3,sep=*,end=n)1*2*3 print(1,2,3)1 2 3eval()函数函数eval()函数可以实现字符串向数字的转换,还可以进行复杂的数字表达运算。函数的一般格式:eval(字符串 ,字典 ,映射)其中,字符串必须是一个Python数字表达式,字典和映射是字符串中用到的表示字典、映射的变量或对象。 eva

15、l(12.34567+8.0)20.34567 x = 2 y = 5 eval(2*x*x+y+1)14range()函数函数range()函数返回一个range对象,其实是一个列表。range()函数的一般格式有两种:range(end)和range(start,end,step),前一种是默认初始值为0,只要指出终点值。后一种格式可指出两个参数(起点、终点)或三个参数(起点、终点、步长)。两种格式不可合并。range()函数调用后的结果如下: range(10)range(0, 10)# range对象对象要想看到表中元素,只能这样:要想看到表中元素,只能这样: x=range(1000

16、0) x999999993.3.2 数学函数库的函数应用数学函数库的函数应用Python系统构造了许多的函数库,其中用户用得最多的是数学类函数库math。在Python解释器上不能直接使用函数库中的函数,因为这些都封装在某一函数库中,要使用库中的某一函数,先要导入相应的函数库,或者称导入模块。导入方法:import from import |*对于第(1)种方法,使用函数时要写成:.,对于第(2)种方法,直接写函数名就行。数学函数库的函数数学函数库的函数举例:举例:factorial()函数函数当x须是正整数时,返回x的阶乘,否则提示错误信息。例如: factorial(10)3628800s

17、in(x), cos(x), exp(x), sqrt(x), log(x,base),log10(x), log2(x),可以查Python的帮助3.4 常用的字符串方法常用的字符串方法方法类似函数(如果不涉及面向对象编程,认为方法就是函数)。其实,方法与函数都是用一段代码完成一定的功能,只是这段代码适用的被调用的范围、调用方法有区别。函数是公用的,方法是类(型)的,方法与对象有关。函数是被直接调用,而方法是用对象调用的,即先创建一个类或类型下的对象,再访问对象的属性(在这里是一个函数),访问对象的属性用“.”运算符。下面的例子中,upper()是方法,str()是函数。 s = ABCD

18、s.upper()+123+XYZ# 对象调用ABCD123XYZ s+str(100+23)+XYZ# 函数调用ABCD123XYZ字符串方法举例:find()方法方法查找指定子串在原字符串首次出现的位置,如果找到,返回位置,位置计数以0开始;如果没有找到,返回-1。如果指定查找范围,仅在范围内查找。例如: s = ABCDE12345 s.find(CD)2join()方法方法将可迭代对象中的元素用s指定的分隔符连起来构成字符串再返回,可迭代对象是列表、元组、字典、集合。 s1 = AB, CD, 123, xyz s = , s.join(s1)AB,CD,123,xyzsplit()方

19、法方法以原字符串s中的分隔符为拆分依据,拆分字符串s,返回一个列表。不指定分隔符时,说明原字符串s中的分隔符是空格。指定分隔符为None或空格,也认为原字符串s中的分隔符是空格。指定错误的分隔符,不能拆分原字符串。例如: s = AB,CD,123,xyz s.split(sep=,)AB, CD, 123, xyz s = AB CD 123 xyz s.split()# 去掉了多余的空格去掉了多余的空格AB, CD, 123, xyz s.split(sep=None)# 去掉了多余的空格去掉了多余的空格AB, CD, 123, xyz s.split(sep= )AB, CD, 123,

20、 , , xyz s.split(sep=*)AB CD 123 xyz# 没有拆分没有拆分3.5 有关字节串和字节数组的方法有关字节串和字节数组的方法字节串方法有:capitalize()、count()、decode()、find()、fromhex()、index()、isdigit()、join()、replace()、split()、strip(),等等。如何使用请查阅Python网站,或使用Python的Help功能。本节只简单介绍几个基本的方法。fromhex()用十六进制数的串创建一个字节串对象。可以容忍十六进制数的串中的空格。例如: bytes.fromhex(2Ef0 F1f2 )b.xf0 xf1xf2 x = 2Ef0 F1f2 type(x) x1 = bytes.fromhex(x) x1b.xf0 xf1xf2 type(x1)hex()这是Python 3.5版开始才有的一个方法,将字节串转换为十六进制数的串。 bxf0 xf1xf2.hex()f0f1f2decode()将字节串转换为字符串。如果不指出编码参数,就是UTF-8编码。 x = b1234XYz xb1234XYz x.decode()1234XYz x.decode(encoding=gb2312)1234XYz

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com