Python程序设计Python语言数据类型运算符和表达式

上传人:痛*** 文档编号:230584490 上传时间:2023-08-26 格式:PPTX 页数:35 大小:321.10KB
收藏 版权申诉 举报 下载
Python程序设计Python语言数据类型运算符和表达式_第1页
第1页 / 共35页
Python程序设计Python语言数据类型运算符和表达式_第2页
第2页 / 共35页
Python程序设计Python语言数据类型运算符和表达式_第3页
第3页 / 共35页
资源描述:

《Python程序设计Python语言数据类型运算符和表达式》由会员分享,可在线阅读,更多相关《Python程序设计Python语言数据类型运算符和表达式(35页珍藏版)》请在装配图网上搜索。

1、1第二章 Python语言数据类型、运算符和表达式Python程序基本概念Python运算符Python表达式第1页/共35页Python程序基本概念仅仅打印“Hello World”就足够了吗?我们应该想要做更多的事想要得到一些输入,然后做操作,再从中得到一些输出。在Python中,我们可以使用常量和变量来完成这些工作。第2页/共35页常量一个字面意义上的常量的例子是如同5、1.23、9.25e-3这样的 数,或者如同This is a string、“Its a string!”这样的字符串。它们被称作字面意义上的,因为它们具备 字面 的意义按照它们的字面意义使用它们的值。数2总是代表它自

2、己,而不会是别的什么东西它是一个常量,因为不能改变它的值。因此,所有这些都被称为字面意义上的常量。第3页/共35页数在Python中有4种类型的数整数、长整数、浮点数和复数。2是一个整数的例子。长整数不过是大一些的整数。3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表 示52.3*10-4。(-5+4j)和(2.3-4.6j)是复数的例子第4页/共35页字符串字符串是 字符的序列。C语言中用字符数组表示,如char str20=“hello”.Python中的字符串可以如下表示:使用单引号():可以用单引号指示字符串,就如同Quote me on this这

3、样。所有的空白,即空格和制表符都照原样保留。使用双引号(“):在双引号中的字符串与单引号中的字符串的使用完全相同,例如”Whats your name?“。第5页/共35页字符串使用三引号(或“”“):利用三引号,可以指示一个多行的字符串,可以在三引号中自由的使用单引号和双引号,如:这是一个多行的字符串,你可以写入任意字符,甚至是单引号和双引号第6页/共35页字符串转义符 假设想要在一个字符串中包含一个单引号(),那么该怎么指示这个字符串?例如,这个字符串是Whats your name?。肯定不能用Whats your name?来指示它,因为Python会弄不明白这个字符串从何处开始,何处

4、结束。所以,需要指明单引号而不是字符串的结尾。可以通过 转义符 来完成这个任务。用来指示单引号 注意这个反斜杠。现在可以把字符串表示为Whats your name?。另一个表示这个特别的字符串的方法是“Whats your name?”,即用双引号。类似地,要在双引号字符串中 使用双引号本身的时候,也可以借助于转义符。另外,可以用转义符来指示反斜杠本身。值得注意的一件事是,在一个字符串中,行末的单独一个反斜杠表示字符串在下一行继续,而不是开始一个新的行Thisisthefirstsentence.Thisisthesecondsentence.Thisisthefirstsentence.T

5、hisisthesecondsentence.第7页/共35页字符串自然字符串 如果你想要指示某些不需要如转义符那样的特别处理的字符串,那么你需要指定一个自然字符串。自然字符串通过给字符串加上前缀r或R来指定。例如rNewlines are indicated by n“比较下面两句话的区别:printNewlinesareindicatedbynhelloprintrNewlinesareindicatedbynhello第8页/共35页字符串Unicode字符串Unicode是书写国际文本的标准方法。如果想要用中文、日文、韩文等写文本,那么需要有一个支持Unicode的编辑器。类似地,Py

6、thon允许处理Unicode文本只需要在字符串前加上前缀u或U。例如,uThis is a Unicode string.。在处理文本文件的时候尽量使用Unicode编码,特别是文件中含有用非英语的语言写的文本。第9页/共35页字符串字符串是不可变的 这意味着一旦创造了一个字符串,就不能再改变它了。虽然这看起来像是一件坏事,但实际上它不是。我们将会在后面的程序中看到为什么说它不是一个缺点。级连字符串 如果把两个字符串按字面意义相邻放着,他们会被Python自动级连。例如,Whats your name?会 被自动转为Whats your name?。Whatsyourname?Whatsyo

7、urname?Whats+your name?第10页/共35页变量仅仅使用字面意义上的常量很快就会不能满足我们的需求我们需要一种既可以储存信息又可以对它们进行操作(改变它的内容)的方法。这是为什么要引入 变量。变量的值可以变化,即可以使用变量存储任何东西。变量只是计算机中存储信息的一部分内存。与字面意义上的常量不同,需要一些能够访问这些变量的方法,因此要给变量命名。第11页/共35页标识符的命名变量是标识符的例子。标识符 是用来标识 某样东西 的名字。在命名标识符的时候,要遵循这些规则:标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(_)。标识符名称的其他部分可以由字母(

8、大写或小写)、下划线(_)或数字(0-9)组成。标识符名称是对大小写敏感的。例如,myname和myName不是一个标识符。注意前者中的小写n和后者中的大写N。有效 标识符名称的例子有i、_my_name、name_23和a1b2_c3。无效 标识符名称的例子有2things、this is spaced out和my-name。第12页/共35页anddelfromnotwhileaselifglobalorwithassertelseifpassyieldbreakexceptimportprintclassexecinraisecontinuefinallyisreturndefforl

9、ambdatry标识符的命名标识符的命名-关键字关键字第13页/共35页标识符的命名-类保留_*:from module import*将不被导出。交互环境最后表达式的值。_*_:系统定义的名字_*:类的私有变量或方法第14页/共35页数据类型每个变量都有自己的类型,可以处理不同类型的值,称为数据类型。基本的类型是数和字符串,我们已经讨论过它们了。在后面的章节里面,我们会研究怎么用类创造我们自己的类型。Python中一切都是对象,包括字符串和数。第15页/共35页对象Python把在程序中用到的任何东西都称为 对象。Python是完全面向对象的语言,任何变量都是对象,甚至包括执行的代码:函数。

10、#Filename:var.pyi=5printii=i+1printis=Thisisamulti-linestring.Thisisthesecondline.prints第16页/共35页逻辑行与物理行物理行是在编写程序时所 看见 的。逻辑行是Python 看见 的单个语句。Python假定每个 物 理行 对应一个 逻辑行 Python希望每行都只使用一个语句,这样使得代码更加易读 如果想要在一个物理行中使用多于一个逻辑行,那么需要使用分号(;)来特别地标明这种用法。分号表示一个逻辑行/语句的结束。例如:i=5printii=5;printi;i=5;printi第17页/共35页逻辑行

11、与物理行强烈建议坚持在每个物理行只写一句逻辑行。仅仅当逻辑行太长的时候,在多于一个物理行写一个逻辑行。这些都是为了尽可能避免使用分号,从而让代码更加易读。下面是一个在多个物理行中写一个逻辑行的例子。它被称为明确的行连接。s=Thisisastring.Thiscontinuesthestring.printsThisisastring.Thiscontinuesthestring.第18页/共35页逻辑行与物理行有一种暗示的假设,可以不需要使用反斜杠。这种情况出现在逻辑行中使用了圆括号、方括号或波形括号的时候。这被称为暗示的行连接。a=100,200printa第19页/共35页缩进空白在Py

12、thon中是重要的。事实上行首的空白是重要的。它称为缩进。在逻辑行 首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。这意味着同一层次的语句必须有相同的缩进。每一组这样的语句称为一个块。错误的缩进会引发错误 不同于C/C+、Java用的是i=5printValueis,i#Error!NoticeasinglespaceatthestartofthelineprintIrepeat,thevalueis,i第20页/共35页缩进如何缩进不要混合使用制表符和空格来缩进,因为这在跨越不同的平台的时候,无法正常工作。强烈建议 在每个缩进层次使用 单个制表符 或 两个或四个空格

13、。选择这三种缩进风格之一。更加重要的是,选择一种风格,然后一贯地使用它,即 只 使用这一种风格。Python迫使程序员写成统一、整齐并且具有可读性程序的主要方式之一,这就意味着必须根据程序的逻辑结构,以垂直对齐的方式来组织程序代码,结果就是让程序更一致,并具有可读性,因而具备了重用性和可维护性,对自己和他人都是如此。第21页/共35页缩进if(x)if(y)statements;elsestatements;ifx:ify:statementselse:statements第22页/共35页Python程序结构1.程序由模块构成2.模块包含语句3.语句包含表达式4.表达式建立并处理对象Pyth

14、on语法实质上是有语句和表达式组成的。表达式处理对象并嵌套在语句中。语句编程实现程序操作中更大的逻辑关系。此外,语句还是对象生成的地方,有些语句会生成新的对象类型(函数、类等)。语句总是存在于模块中,而模块本身则又是由语句来管理的。第23页/共35页Python语法Python增加了什么新的语法成分冒号(:)。所有的复合语句(语句中嵌套了语句)都有相同的一般形式,就是首行以冒号结尾,首行下一行嵌套的代码往往按缩进的格式书写。Python删除了什么括号是可选的终止行就是终止语句(分号)缩进的结束就是代码块的结束()if(xy)x=1;y=2;ifxy:x=1y=2第24页/共35页运算符与表达式

15、编写的大多数语句(逻辑行)都包含表达式。一个简单的表达式例子如2+3。一 个表达式可以分解为运算符和操作数。运算符 的功能是完成某件事,它们由如+这样的符号或者其他特定的关键字表示。运算符需要数据来进行运算,这样的数据被称为 操作数。在这个例子中,2和3是操作数。在Python中,表达式可以作为语句,但表达式结果不会存储。第25页/共35页运算符及其用法 运算符运算符名称名称说明说明例子例子+加两个对象相加3+5得到8。a+b得到ab。-减得到负数或是一个数减去另一个数-5.2得到一个负数。50-24得到26。*乘两个数相乘或是返回一个被重复若干次的字符串2*3得到6。la*3得到lalala

16、。*幂返回x的y次幂3*4得到81(即3*3*3*3)/除x除以y4/3得到1(整数的除法得到整数结果)。4.0/3或4/3.0得到1.3333333333333333/取整除返回商的整数部分4/3.0得到1.0%取模返回除法的余数8%3得到2。-25.5%2.25得到1.5左移把一个数的比特向左移一定数目(每个数在内存中都表示为比特或二进制数字,即0和1)2 右移把一个数的比特向右移一定数目11 1得到5。11按比特表示为1011,向右移动1比特后得到101,即十进制的5。第26页/共35页运算符及其用法运算符运算符名称名称说明说明例子例子&按位与数的按位与5&3得到1。|按位或数的按位或5

17、|3得到7。按位异或数的按位异或 5 3得到6按位翻转x的按位翻转是-(x+1)5得到6。第27页/共35页运算符及其用法运算符运算符名称名称说明说明例子例子小于返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。5 3返回0(即False)而3 5返回1(即True)。比较可以被任意连接:3 5 大于返回x是否大于y5 3返回True。如果两个操作数都是数字,它们首先被转换为一个共同的类型。否则,它总是返回False。=小于等于返回x是否小于等于yx=3;y=6;x=大于等于返回x是否大于等于yx=4;y=3;x=y

18、返回True。=等于比较对象是否相等x=2;y=2;x=y返回True。x=str;y=stR;x=y返回False。x=str;y=str;x=y返回True。!=不等于比较两个对象是否不相等x=2;y=3;x!=y返回True。第28页/共35页运算符及其用法运算符运算符名称名称说明说明例子例子not布尔“非”如果x为True,返回False。如果x为False,它返回True。x=True;not y返回False。and布尔“与”如果x为False,x and y返回False,否则它返回y的计算值。x=False;y=True;x and y,由于x是False,返回False。在这

19、里,Python不会计算y,因为它知道这个表达式的值肯定是False(因为x是False)。这个现象 称为短路计算。or布尔“或”如果x是True,它返回True,否则它返回y的计算值。x=True;y=False;x or y返回True。第29页/共35页运算符优先级如果有一个如2+3*4那样的表达式,是先做加法呢,还是先做乘法?应当先做乘法这意味着乘法运算符的优先级高于加法运算符 下面给出Python运算符优先级 第30页/共35页运算符运算符描述描述lambdaLambda表达式or布尔“或”and布尔“与”not x布尔“非”in,not in成员测试is,is not同一性测试,=

20、,!=,=比较|按位或按位异或&按位与移位+,-加法与减法*,/,%乘法、除法与取余+x,-x正负号x按位翻转*指数x.attribute属性参考xindex下标xindex:index寻址段f(arguments.)函数调用(experession,.)绑定或元组显示expression,.列表显示key:datum,.字典显示expression,.字符串转换在表中列在同一行的运算符具有 相同优先级 第31页/共35页运算符优先级建议使用圆括号来分组运算符和操作数,以便能够明确地指出运算的先后顺序,使程序尽可能地易读。例如,2+(3*4)显然比2+3*4清晰。与此同时,圆括号也应该正确使用,而不应该用得过滥,比如:(2+(3+4)。第32页/共35页运算符优先级计算顺序默认地,运算符优先级表决定了哪个运算符在别的运算符之前计算。然而,如果想要改变它们的计算顺序,可以使用圆括号。例如,想要在一个表达式中让加法在乘法之前计算,那么就可以写成类似(2+3)*4的样子。结合规律运算符通常由左向右结合,即具有相同优先级的运算符按照从左向右的顺序计算。例如,2+3+4被计算成(2+3)+4。一些如赋值运算符那样的运算符是由右向左结合的,即a=b=c被处理为a=(b=c)。第33页/共35页第34页/共35页35谢谢您的观看!第35页/共35页

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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