资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,理论学习 案例学习 学习活动 学习评测 参考资料,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,理论学习 案例学习 学习活动 学习评测 参考资料,1,第2章 Python语言基础,2,目录,Python语言基础,Python数据类型,运算符和表达式,Python数据结构,程序控制结构,编程实践,Python语言基础,2.1.1,Python文件类型,Python语言常用的文件类型有三种:,(1),源代码文件,:文件以.py为扩展名,由Python程,序解释,不需要编译。,(2),字节代码文件,:文件以.pyc为扩展名,是由py源,文件编译成的二进制字节码文件,由Python加载执,行,速度块,能够隐藏源码。可以通过以下代码将,.py文件转换成.pyc文件。,(3),优化代码文件,:文件以.pyo为扩展名,是优化编,译后的程序,也是二进制文件,适用于嵌入式系统。,可以通过以下代码将.py文件转换成.pyo文件。,3,Python语言基础,2.1.2 Python编码规范,1.编程运行方式,Python程序可以在交互模式编程或脚本编程模式下运行。,(1)以交互模式运行:启动Python自带的IDLE或在命令提示符下运行python.exe回车,进入Python环境。例如:,print(欢迎使用Python),欢迎使用Python,(2)以脚本方式运行:对于大量代码的开发,经常采用以脚本方式运行,即利用编辑器输入Python代码,保存成*.py文件,然后运行。例如使用PyCharm编程程序、调试、运行。,4,Python语言基础,2.1.2 Python编码规范,2.Python标识符,Python标识符是用来标识一个变量、函数、类、模块或其他对象的名称。,(1)必须以下划线(_)或字母开头,后面接任意数量的下划线、字母或数字。,(2)变量名区分大小写。Abc和abc是两个不同的变量。,(3)禁止使用Python保留字(或称关键字)。,5,Python语言基础,2.1.2 Python编码规范,3.行和缩进,Python使用缩进来表示代码块,而不需要使用大括号。,缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。例如:,if Score90:,print(A),else:,print(B),6,Python语言基础,2.1.2 Python编码规范,4.注释,Python中注释有单行注释,多行注释,批量注释。Python中单行注释以#开头,多行注释可以用多个#号或三引号。,5.多行语句,Python 通常是一行写完一条语句,如果语句很长,我们可以使用反斜杠()来实现多行语句。,6.同一行显示多条语句,Python可以在同一行中使用多条语句,语句之间使用分号(;)分割。,7,Python语言基础,2.1.3 输入与输出,1.输出语句print(),使用print()函数可以数据显示到屏幕上,其功能类似C语言中的printf()函数。print()可以输出字符串、数字类型,也可以输出数值、布尔、列表、字典等类型,同时指出格式化输出。,print()可以输出多个变量,中间用逗号隔开。,2.输入语句input(),input()函数可以将用户输入字符串同时保存到变量中。,8,Python语言基础,2.2 Python数据类型,Python3中有六个标准的数据类型:,Number(数字),、,String(字符串),、,List(列表),、,Tuple(元组),、,Sets(集合),、,Dictionary(字典),。,9,Python语言基础,2.2 Python数据类型,2.2.1 Number(数字),数字是程序处理的一种基本数据,Python核心对象包含的常用数字类型有:,整型(int),、,浮点型(float),、,布尔型(bool),以及与之相关的语法和操作。同时Python提供了,复数(complex),以及,无穷精度的长整型(long),。其数字类型的复杂程度按照整型、长整型、浮点数、复数的顺序依次递增。此外,Python还允许将十进制的整型数表示为,二进制,、,八进制,、,十进制,。,(1),整型,:整型常量就是不带小数点的数,但有正负之分,例如:1,100,-8080,0等等。在Python 3.x中不再区分整型和长整型。,(2),浮点型,:浮点型由整数部分和小数部分组成,如1.23,3.14,-9.01等等。浮点型也可以使用科学计数法表示(2.5e2=2.5 x 102=250)。,布尔型:bool只有两个值True和False。,复数,:复数常量表示为“实部+虚部”形式,虚部以j或J结尾。可用complex函数来创建复数,其函数的基本格式为:complex(实部,虚部)。使用type()函数可以查询变量所指的对象类型。,10,Python语言基础,2.2 Python数据类型,2.2.2 String(字符串),字符串是一个有序的字符的集合,用来存储和表现基于文本的信息。,Python字符串有多种表示方式:,1.单引号和双引号,在表示字符常量时,单引号和双引号可以互换,可以用单引号或者是双引号两种形式返回相同类型的对象。同时单引号字符串可以嵌入双引号或在双引号中嵌入单引号。,2.三引号,在表示字符常量时,三引号通常用来表示多行字符串,也被称为块字符。在显示时,字符串中的各种控制字符以转义字符显示。三引号还可以作为文档注释,被三引号包含的代码作为多行注释使用。,11,Python语言基础,2.2 Python数据类型,2.2.2 String(字符串),字符串是一个有序的字符的集合,用来存储和表现基于文本的信息。,Python字符串有多种表示方式:,3.转义字符,在字符中使用特殊字符时,Python用反斜杠()转义字符,如下表。,12,Python语言基础,13,转义字符,说明,反斜线,单引号,”,双引号,a,响铃符,b,退格符,f,换页符,n,换行符,r,回车符,t,水平制表符,v,垂直制表符,0,Null,,空字符串,ooo,八进制值表示,ASCII,码对应字符,xhh,十六进制值表示,ASCII,码对应字符,Python语言基础,2.2 Python数据类型,2.2.2 String(字符串),字符串是一个有序的字符的集合,用来存储和表现基于文本的信息。,Python字符串有多种表示方式:,4.带r或R前缀的Raw字符串,由于在Python中不会解析其字符串中的转义字符,利用Raw字符串来解决打开Windows系统中文件路径的问题。例如:,path=open(d:tempnewpy.py,r),Python会将文件名字符串中的t和n处理为转义字符。为避免这种情况,可将文件名中的反斜线表示为转移字符,即为:,path=open(d:tempnewpy.py,r),另一种表示方法,将反斜线用正斜线表示,即为:,path=open(d:/temp/newpy.py,r),或者,使用Raw字符串来表示文件名字符串,例如:,path=open(rd:tempnewpy.py,r),这里r或R不区分大小写。,14,Python语言基础,2.2 Python数据类型,2.2.3 变量及其赋值,变量是计算机内存中的一块区域,存储规定范围内的值,其值在程序中可以改变。C、C+和Java等都属于静态数据类型语言,要求变量在使用前必须声明其数据类型。而Python属于动态数据类型语言,类型是在运行过程中自动决定,不需要通过代码声明,可以直接使用赋值运算符(=)对其进行赋值操作,根据所赋值来决定其数据类型。Python中变量的命名遵循Python的标识符命名规则。,Python支持多种格式的赋值语句:,1.简单赋值,简单赋值用于为一个变量建立对象引用。,2.序列赋值,序列赋值指等号左侧是元组、列表表示的多个变量名,右侧是元组、列表或字符串等序列表示的值。序列赋值可以一次性为多个变量赋值。,15,Python语言基础,2.2 Python数据类型,2.2.3 变量及其赋值,3.多目标赋值,多目标赋值指用连续的多个“=”为变量赋值。,a=b=c=10#将10赋值给变量a,b,c,a,b,c,(10,10,10),4.增强赋值,增强赋值指运算符与赋值相结合的赋值语句。,a=5,a+=10#等价于a=a+10,a,15,16,Python语言基础,2.3 运算符和表达式,Python中有丰富的运算符,包括,算术运算符,、,关系运算符,、,字符串运算符,、,逻辑运算,符。表达式是由运算符和圆括号将常量、变量和函数等按一定规则组合在一起的式子。根据运算符的不同,Python有,算术表达式,、,关系表达式,、,字符串表达式,、,逻辑表达式,。,17,Python语言基础,2.3 运算符和表达式,2.3.1 算术运算符和表达式,算数运算符包括加、减、乘、除、取余、取整、幂运算。,2.3.2 赋值运算符和表达式,赋值运算除了一般的赋值运算(=)外,还包括各种复合赋值运算如+=,-=,*=,/=等。其功能是把赋值号右边的值赋给左边变量所在的存储单元。,18,运算符,说明,实例,=,直接赋值,X=3,;将,3,的值赋给,x,;,+=,加法赋值,X+=3,;等同于,x=x+3,;,-=,减法赋值,X-=3,;等同于,x=x-3,;,*=,乘法赋值,X*=3,;等同于,x=x*3,;,/=,除法赋值,X/=3,;等同于,x=x/3,;,*=,幂赋值,X*=3,;等同于,x=x*3,;,/=,整除赋值,X/=3,;等同于,x=x/3,;,Python语言基础,2.3 运算符和表达式,2.3.3 逻辑运算符和表达式,逻辑运算符是执行逻辑运算的运算符。逻辑运算也称布尔运算,运算结果是逻辑真(True)或逻辑假(False)。Python常用的逻辑运算符有not、and和or操作。,19,运算符,说明,and,逻辑与,X and Y,:,X,,,Y,同时为真返回,True,,否则返回,False,or,逻辑或,X or Y,:,X,,,Y,只要其中一个为真返回,True,,都为假时则返回,False,not,逻辑非,not X,:,X,为真返回,False,,,X,为假返回,True,Python语言基础,2.3 运算符和表达式,2.3.4 关系运算符和表达式,关系运算符也称比较运算符,用来对两个表达式的值进行比较,比较的结果为逻辑值。若关系成立返回True,若关系不成立返回False。,20,运算符,说明,实例,=,等于,(5=3),返回,False,!=,不等于,(5!=3),返回,True,不等于,(ABC abc),返回,True,大于,(5 8),返回,False,。,小于,(5=,大于等于,(5=8),返回,False,。,Python语言基础,2.3 运算符和表达式,2.3.5 字符串运算符和表达式,1.字符串运算符和表达式,在Python中同样提供了对字符串进行相关处理的操作。,21,运算符,说明,实例,+,字符串连接,a+b,输出结果:,HelloPython,*,重复输出字符串,a*2,输出结果:,HelloHello,通过索引获取字符串中字符,a1,输出结果,e,:,截取字符串中的一部分,a1:4,输出结果,ell,in,成员运算符,:,如果字符串中包含给定的字符返回,True,H in a,输出结果,True,not in,如果字符串中不包含给定的字符返回,True,M not in a,输出结果,True,r/R,原始字符串,:,所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。原始字符串除在字符串的第一个引号前加上字母,r,(可以大小写)以外,与普通字符串有着几乎完全相同的语法。,print rn prints n,和,print Rn prints n,%,格式字符串,print(%d+%d=%d%(3,5,8),Python语言基础,2.3 运算符和表达式,2.3.5 字符串运算符和表达式,2.字符串的格式化,编写程序的过程中,经常需要进行格式化输出,Python中提供了字符串格式化操作符“%”,非常类似C语言里的printf()函数的字符串格式化(C语言中也使用%)。格式化字符串时,Python使用一个字符串作为模板。模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。Python用一个tuple将多个值传递给模板,每个值对应一个格式符。,Python中格式符可以包含的类型,见下表。,22,Python语言基础,23,格式符,说明,%c,转换成字符(,ASCII,码值,或者长度为一的字符串),%r,优先用,repr(),函数进行字符串转换,%s,优先用,str(),函数进行字符串转换,%d/%i,转成有符号十进制数,%u,转成无符号十进制数,%o,转成无符号八进制数,%x/%X,转成无符号十六进制数(,x/X,代表转换后的十六进制字符的大小写),%e/%E,转成科学计数法(,e/E,控制输出,e/E,),%f/%F,转成浮点数(小数部分自然截断),%g/%G,%e,和,%f/%E,和,%F,的简写,%,输出,%,(格式化字符串里面包括百分号,那么必须使用,%,),Python语言基础,2.3 运算符和表达式,2.3.5 字符串运算符和表达式,2.字符串的格式化,通过“%”可以进行字符串格式化,但是“%”经常会结合下面的辅助符一起使用。,24,辅助符号,说明,*,定义宽度或者小数点精度,-,左对齐,+,在正数前面显示加号,(+),#,在八进制数前面显示零,(0),,在十六进制前面显示“,0 x”,或者“,0X”,(取决于用的是,x,还是,X,),0,显示的数字前面填充“,0”,而不是默认的空格,(var),映射变量(通常用来处理字段类型的参数),m.n,m,是显示的最小总宽度,,n,是小数点后的位数,Python语言基础,2.3 运算符和表达式,2.3.6 位运算符和表达式,按位运算符是把数字看作二进制进行计算,Python中的按位运算符及其表达式如表,25,运算符,说明,实例,&,按位与,X&Y,|,按位或,X|Y,按位异或,X Y,按位取反,X,按位左移,X,按位右移,XY,Python语言基础,2.3 运算符和表达式,2.3.6 位运算符和表达式,按位与:两个操作数X、Y按相同位置的二进制位进行与操作,两个位置上都是1时,位的与结果为1,否则为0。,按位或:两个操作数X、Y按相同位置的二进制位进行或操作,只要有一个位置上是1其结果为1,否则为0。,按位异或:两个操作数X、Y按相同位置的二进制位进行异或操作,位置上的数相同时结果为0,否则为1。,按位取反:操作数X的二进制位中,1取反为0,0取反为1,符号位也参与操作。,按位左移:两个操作数X、Y,将X按二进制形式向左移动Y位,末尾补0,符号位保持不变。向左移动一位等同于乘以2。,按位右移:两个操作数X、Y,将X按二进制形式向右移动Y位,符号位保持不变。向右移动一位等同于除以2。,26,Python语言基础,2.3 运算符和表达式,2.3.7 运算符的优先级,每一种运算符都有一定的优先级,用来决定它在表达式中的运算次序。表2-11列出了各类运算符的优先级,运算优先级依次从高到低。如果表达式中包含括号,Python会首先计算括号内的表达式,然后将结果用在整个表达式中。如当计算表达式a+b*(c-d)/e时,则运算符的运算次序依次为:()、*、/、+。优先级如下表。,27,运算符,说明,*,幂运算,按位取反,-,负号,*,、,%,、,/,、,/,乘法、取余、除法、取余,+,、,-,加法、减法,向左移位、向右移位,&,按位与,按位异或,|,按位或,、,、,=,、,=,、,!=,小于、小于等于、大于、大于等于、相等、不等,not and or,逻辑非、逻辑与、逻辑或,Python语言基础,2.3 运算符和表达式,2.3.8.Python常用的函数,1.数据类型转换,程序编写过程中时常需要对数据类型进行转换。常用数据类型转换如下表。,28,函数性,说明,Int(x,base),将字符串常量或变量,x,转换为整数,参数,base,为可选参数;,long(x,base),将字符串常量或变量,x,转换为长整数,参数,base,为可选参数;,float(x),将字符串常量或变量,x,转换为浮点数;,eval(str),计算在字符串中有效的,python,表达式,并返回一个对象,str(x),将数值,x,转换为字符串,repr(obj),将对象,obj,转换为可打印的字符串,chr(,整数,),将一个整数转换为对应的,ASCII,ord(,字符,),将一个字符转换为对应的,ASCII,hex(x),将一个整数转换成一个十六进制字符串,oct(x),将一个整数转换为一个八进制字符串,tuple(s),将序列,s,转换为一个元组,list(s),将序列,s,转换为一个列表,set(s),将序列,s,转换为可变集合,dict(d),创建一个字典,,d,必须是一个序列,(key,vlaue),元组,Python语言基础,2.3 运算符和表达式,2.3.8.Python常用的函数,2.常用的数学函数,Python的math模块提供了的基本数学函数。使用时首先用 import math语句将math模块导入。math模块中常用的数学函数如下表。,29,Python语言基础,30,函数名,说明,abs(x),返回数字的绝对值,exp(x),返回,e,的,x,次幂,fabs(x),返回数字的绝对值,log10(x),返回以,10,为基数的,x,的对数,pow(x,y),:,求,x,的,y,次幂,sqrt(x),求,x,的平方根,floor(x),求不大于,x,的正大整数,ceil(x),取不小于,x,的最小整数,fmod(x,y),求,x/y,的余数,sin(x),求,x,的正弦,cos(x),求,x,的余弦,asin(x),求,x,的反正弦,acos(x),求,x,的反余弦,tan(x),求,x,的正切,atan(x),求,x,的反正切,Python语言基础,2.3 运算符和表达式,2.3.8.Python常用的函数,3常用的字符串处理函数,Python提供了常用的字符串操作函数,常用的字符串函数如下表。,31,函数名,说明,string.capitalize(),把字符串的第一个字符大写,string.center(width),返回一个原字符串居中,并使用空格填充至长度,width,的新字符串,string.count(str,beg=0,end=len(string),返回,str,在,string,里面出现的次数,如果,beg,或者,end,指定则返回指定范围内,str,出现的次数,string.decode(encoding=UTF-8,errors=strict),以,encoding,指定的编码格式解码,string,,如果出错默认报一个,ValueError,的异常,string.endswith(obj,beg=0,end=len(string),检查字符串是否以,obj,结束,如果,beg,或者,end,指定则检查指定的范围内是否以,obj,结束,如果是,返回,True,否则返回,False.,string.find(str,beg=0,end=len(string),检测,str,是否包含在,string,中,如果,beg,和,end,指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回,-1,string.format(),格式化字符串,string.isalnum(),如果,string,至少有一个字符并且所有字符都是字母或数字则返回,True,,否则返回,False,32,string.isalpha(),如果,string,至少有一个字符并且所有字符都是字母则返回,True,否则返回,False,string.isdecimal(),如果,string,只包含十进制数字则返回,True,否则返回,False,string.isdigit(),如果,string,只包含数字则返回,True,否则返回,False,string.islower(),如果,string,中包含至少一个区分大小写的字符,并且所有这些,(,区分大小写的,),字符都是小写,则返回,True,,否则返回,False,string.isnumeric(),如果,string,中只包含数字字符,则返回,True,,否则返回,False,string.istitle(),如果,string,是标题化的,(,见,title(),则返回,True,,否则返回,False,string.isupper(),如果,string,中包含至少一个区分大小写的字符,并且所有这些,(,区分大小写的,),字符都是大写,则返回,True,,否则返回,False,string.lower(),转换,string,中所有大写字符为小写,string.lstrip(),截掉,string,左边的空格,Python语言基础,2.4 Python数据结构,数据结构,(Data Structure)是相互之间存在一种或者多种特定关系的数据元素集合,这些数据元素可以是数字或者字符,同样也可以是其他类型的数据结构。,在Python语言中,序列(sequence)是最基本的数据结构。序列中,给每一个元素分配一个序列号即元素的位置,该位置又被称为索引。第一个索引为0,第二个索引为1,后面以此类推。Python中包含6种內建序列,本节着重讨论最常用的两种:,列表和元组,。除了序列数据结构,常用的Python数据结构还有,映射(map),和,集合(set),。,33,Python语言基础,2.4 Python数据结构,2.4.1 列表,列表(List)是Python语言中最通用的序列数据结构之一。列表是一个没有固定长度的,用来表示任意类型对象的位置相关的有序集合。列表的数据项不需要具有相同的类型,常用的列表操作主要包括:索引、连接、乘法和分片等。列表中的每个元素都分配一个数字 它的位置(索引),第一个索引是0,第二个索引是1,依此类推。,34,Python语言基础,2.4 Python数据结构,2.4.1 列表,1.列表的基本操作,(1)创建列表,创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。,(2)访问列表,可以使用下标索引来访问列表中的值,也可以使用方括号的形式截取字符。,(3)列表元素赋值,列表元素的赋值主要包括两种方法:列表整体赋值和列表指定位置赋值。,(4)列表元素删除,使用del语句可以很容易的实现列表的删除操作。,(5)列表分片赋值,分片操作可以用来访问一定范围内的元素,也可以用来提取序列的一部分内容。分片是通过冒号相隔的两个索引来实现的,第一个索引的元素包含在片内,第二个索引的元素不包含在片内。,35,Python语言基础,2.4 Python数据结构,2.4.1 列表,方法是一个与对象有着密切关联的函数。如表。,36,函数和方法,说明,append(),在列表末尾追加新的对象,count(),统计某元素在列表中出现的次数,extend(),在列表的末尾一次性追加另一个序列中的多个值,insert(),将对象插入到列表中,pop(),移除列表中的一个元素,并返回该元素的值,reverse(),将列表中的元素反向存储,sort(),对列表进行排序,index(),在列表中找出某个值第一次出现的位置,remove(),用于移除列表中某个值的第一个匹配项,cmp(),用于比较两个列表的元素,len(),返回列表元素个数,max(),返回列表元素中的最大值,min(),返回列表元素中的最小值,Python语言基础,2.4 Python数据结构,2.4.2 元组,序列数据结构的另一个重要类型是元组,元组与列表非常类似,唯一的不同是元组一经定义,其内容就不能修改。此外,元组元素可以存储不同类型的数据,包括字符串、数字,甚至是元组。,1.元组的创建,元组的创建非常简单,可以直接用逗号分隔来创建一个元组。,37,Python语言基础,2.4 Python数据结构,2.4.2 元组,2.元组的基本操作,元组的操作主要是元组的创建和元组元素的访问,除此之外的操作与列表基本类似。,(1)元组元素的访问,与列表相似,元组元素可以直接通过索引来访问。,te=(I,have,a,dream),te1,Have,(2)元组元素的排序,与列表不同,元组的内容不能发生改变,因此适用于列表的sort()方法并不适用于元组,元组的排序只能先将元组通过list方法转换成列表,然后对列表进行排序,然后再将列表通过tuple方法转换成元组。,38,Python语言基础,2.4 Python数据结构,2.,4,.3 字典,在Python的数据结构类型中,除了序列数据结构还有一种非常重要的数据结构映射(Map)。字典结构是Python中唯一內建的映射类型。与序列数据结构最大的不同是字典结构中每个字典元素都有键(key)和值(value)两个属性,字典的每个键值(key=value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号()中,格式如下:,d=key1:value1,key2:value2,字典可以通过顺序的阅读实现对字典元素的遍历,也可以通过对某个字典元素的键进行搜索从而找到该字典元素对应的值。,主要方法如下表:,39,Python语言基础,函数和方法,说明,dict(),通过映射或者序列对建立字典,clear(),清除字典中的所有项,pop(),删除指定的字典元素,in(),判断字典是否存在指定元素,fromkeys(),使用指定的键建立新的字典,每个键对应的值默认为,None,get(),根据指定键返回对应的值,如果键不存在,返回,None,values(),以列表的形式返回字典中的值,update(),将两个字典合并,copy(),实现字典的前复制,返回一个具有相同键,-,值的新字典,40,Python语言基础,2.4 Python数据结构,2.,4,.4 集合,与前文介绍的两种数据结构不同,集合(set)对象是由一组无序元素组成,可以分为可变集合(set)和不可变集合(frozenset)。不可变集合是可哈希的,可以当作字典的键。,1.集合的基本操作,41,方法,说明,set(),创建一个可变集合,add(),在集合中添加元素,update(),将另一个集合中的元素添加到指定集合中,remove(),删除指定的集合,Python语言基础,2.4 Python数据结构,2.,4,.4 集合,2.集合运算符操作,42,操作符,实例,集体操作,=,A=B,如果集合,A,等于集合,B,返回,True,,反之返回,False,!=,A!=B,如果集合,A,不等于集合,B,返回,True,,反之返回,False,Ab,如果集合,A,是集合,B,的真子集返回,True,,反之返回,False,=,A,AB,如果集合,A,是集合,B,的真超集返回,True,,反之返回,False,=,A=B,如果集合,A,是集合,B,的超集返回,True,,反之返回,False,|,A|B,计算集合,A,与集合,B,进行并集,&,A&B,计算集合,A,与集合,B,进行交集,-,A-B,计算集合,A,与集合,B,进行差集,Python语言基础,2.5 程序控制结构,程序流程的控制是通过有效的控制结构来实现的,结构化程序设计有3种基本控制结构:,顺序结构,、,选择结构,和,循环结构,。由这3种基本结构还可以派生出“多分支结构”,即根据给定条件从多个分支路径中选择执行其中的一个。本节主要介绍选择结构和循环结构。,2.5.1 选择结构,选择结构,即根据所选择条件为真(即判断条件成立)与否,做出不同的选择,从各实际可能的不同操作分支中选择一个且只能选一个分支执行。此时需要对某个条件做出判断,根据这个条件的具体取值情况,决定执行哪个分支操作。,Python中的选择结构语句分为,if语句,、,if else语句,、,if elif else语句,。,43,Python语言基础,2.5 程序控制结构,2.5.1 选择结构,1.if语句,f语句用于检测表达式是否成立,如果成立则执行if语句内的语句块(或语句),否则不执行if语句。,44,if语句的格式如下:,if(表达式):,语句块,例如:,c=10,if c5:,.print(C5),C5,if语句流程图,F,T,Python语言基础,2.5 程序控制结构,2.5.1 选择结构,2.if else语句,检测表达式的值是否成立,如果成立则执行if语句内的语句块1(或语句1),否则执行else后的语句块2(或语句2)。,45,if else语句的格式如下:,if(表达式):,语句块1,else:,语句块2,i,f else语句结构流程,Python语言基础,2.5 程序控制结构,2.5.1 选择结构,3.if elif else语句,当在程序设计中需要检查多个条件时,可以使用if elif else语句实现。,46,if elif else语句格式如下:,if(表达式1):,语句块1,elif(表达式2):,语句块2,.,elif(表达式n):,语句块n,else:,语句块n+1,表达式1,表达式2,表达式n,语句块1,语句块2,语句块n,语句块n+1,if elif else结构流程图,T,F,T,F,T,F,Python语言基础,2.5 程序控制结构,2.5.2 循环结构,所谓循环结构,表示在执行语句时,需要对其中的某个或某部分语句重复执行多次。在Python程序设计语言中主要有两种循环结构:while循环和for循环。通过这两种循环结构可以提高编码效率。,1while循环,while语句是Python语言中最常用的迭代结构,while循环就是对决定循环的条件进行判断,如果条件成立,则执行循环体,当条件不成立时,循环结束。,while语句格式如下:,while(表达式):,.,47,Python语言基础,2.5 程序控制结构,2.5.2 循环结构,2for循环,while语句可以用来在任何条件为真的情况下重复执行一个代码块。但是在对字符串、列表、元组等可迭代对象进行遍历操作时,while语句则难以实现遍历目的,这时可以使用for循环语句来实现。,for语句格式如下:,for 变量 in 集合:,语句块,.,48,Python语言基础,2.5 程序控制结构,2.5.2 循环结构,3continue语句,一般而言,循环会在执行到条件为假时自动退出循环,但是在实际的编程过程中,有时需要中途退出循环操作。Python语言中主要提供了两种中途跳出方法:continue语句和break语句。,continue语句的作用是立即结束本次循环,重新开始下一轮循环,也就是说,跳过循环体中在continue语句之后的所有语句,继续下一轮循环。,4break语句,与continue语句不同,break语句的作用是跳出整个循环,其后的代码都不会执行。使用break语句可以避免循环嵌套从而形成死循环,同时break语句也被广泛的应用于对目标元素的查找操作,一旦找到目标元素便终止循环,。,49,
展开阅读全文