1、PythonPython3流程控制和循环语句流程控制和循环语句第章本章内容本章内容3 3.1.1 PythonPython语句基础语句基础3.23.2 流程控制流程控制3.3 3.3 循环语句循环语句3.4 3.4 案例精选案例精选本章小结本章小结3.1 Python语句基础语句基础v 语句是Python程序的过程构造块,用于定义函数、定义类、创建对象、变量赋值、调用函数、控制分支、创建循环等。Python语句分为简单语句和复合语句。v 简单语句包括表达式语句、赋值语句、assert语句、pass空语句、del语句、return语句、yield语句、raise语句、break语句、contin
2、ue语句、import语句、global语句、nonlocal语句等。v 复合语句一般由多个语句组成,包括if语句、while语句、for语句、try语句、with语句、函数定义、类定义等。3.1 Python语句基础语句基础v 3.1.1注释v 一个好的、可读性强的程序一定要添加注释,良好的注释可以帮助程序员阅读、理解程序,同时为日后维护程序提供方便。Python语言常用的注释方式有2种:v 1)单行注释,以井号(#)开始,表示本行井号(#)之后的内容为注释。该注释可以出现在程序的任何位置,均是从“#”开始,到行末为注释内容。v 2)多行注释,包含在一对三引号之间(或),可以注释一到多行内容
3、。3.1 Python语句基础语句基础v 3.1.1语句格式v Python语句书写格式要求如下:v 1)一般情况下,在Python程序中一行写一条语句,使用换行符分隔语句;如果一行书写多条语句,语句之间用分号(;)进行分隔v 2)Python程序是依靠语句的缩进来体现各语句之间的逻辑关系的,缩进结束就表示一个代码块结束了。最外层的类定义、函数定义、选择结构、循环结构等应从第1列开始,前面不能有任何空格,行尾的冒号表示缩进的开始。同一个级别的代码块的缩进量必须相同。3.1 Python语句基础语句基础v 3)如果一个语句太长,可以在行尾使用续行符()连接下一行代码,也可以使用括号将多行代码括起
4、来。v 4)建议在运算符两侧、函数的各参数之间、逗号两侧增加空格,增强代码的层次。v 5)Python语言不支持常量,使用约定在程序运行过程中不会改变的变量为常量,通常常量名的所有字母大写,由下划线连接各单词。类名首字母大写。3.2 流程控制流程控制v 在程序设计过程中,会遇到选择A或者选择B,甚至在更多个选项中进行选择的情况,此时可以考虑使用选择结构,选择结构是Python中3种基本结构之一,通常用来判断某条件是否满足以决定要执行的动作。v Python提供了3种基本语句实现选择结构,这3种基本语句分别是:if语句、ifelse语句和ifelifelse语句,可分别实现单分支、双分支和多分支
5、结构。v 3.2.1 if语句v if语句用来实现单分支结构,用于控制条件满足的情况下要执行的动作。Python语言的if语句的功能跟其他语言中if语句的功能非常相似,都是根据判断给出的判定条件决定是否执行给出的操作。if语句是一种单选择结构,它选择的是做与不做,if语句由3部分组成:关键字if、判定条件真假的表达式(条件表达式)和表达式结果为真时要执行的代码。if语句的语法形式为:if 条件表达式:语句块3.2 流程控制流程控制3.2 流程控制流程控制v if语句的流程图。3.2 流程控制流程控制v 3.2.2 ifelse语句v ifelse语句是双选结构,在2种备选行为中选择一个进行操作
6、。ifelse语句由5部分组成:关键字if、测试条件真假的表达式、表达式结果为真时要执行的语句块、关键字else和表达式结果为假时要执行的语句块。语法形式:if 条件表达式:语句块1else:语句块23.2 流程控制流程控制 ifelse语句流程图3.2 流程控制流程控制v 3.2.3 ifelifelse语句v 对于Python语言来说使用ifelifelse语句实现多分支结构。该语句需要对一系列条件表达式进行检查,并在某个条件表达式结果为True的情况下执行相应的代码。v 需要注意的是,虽然ifelifelse语句的备选动作较多,但是有且只有一组动作被执行。3.2 流程控制流程控制if 表
7、达式1:语句块1elif 表达式2:语句块2elif 表达式n:语句块nelse语句块(n+1)3.2 流程控制流程控制ifelifelse语句的执行过程3.3 循环语句循环语句v 3.3.1 while循环语句v while语句用于循环执行代码,即在某条件成立的情况下,重复执行相应的语句块,以处理需要重复处理的相同任务。while循环一般用于循环次数可以提前确定的情况。v 其基本形式为:while 条件表达式:循环体3.3 循环语句循环语句v while循环的执行流程。if 条件表达式:语句块1elsev 3.3.2 for循环语句v for语句用于遍历可迭代对象集合中的元素,可以遍历任何序
8、列的项目,如一个列表、元组或者一个字符串。for循环的语法格式如下:for 循环索引值 in 对象集合:循环体语句块v for语句的执行过程是:每次循环,判断循环索引值是否还在对象集合中,如果在,取出该值提供给循环体内的语句使用;如果不在,则结束循环,执行循环体后面的语句。3.3 循环语句循环语句v 3.3.3 循环嵌套v 一个循环体内又包含另一个完整的循环结构,称为循环嵌套。内嵌的循环结构中还可以嵌套循环结构,这就是多层循环嵌套。for循环和while循环可以互相嵌套。3.3 循环语句循环语句v 3.3.4 break语句和continue语句v 一在执行循环的过程中,如果希望只要发生特定的
9、条件(例如,检测到错误条件或过早地达到数据末尾时),就立即退出循环,即提前终止循环,break语句就可以用于实现这个目的。v break语句用于提前退出for循环和while循环,即根据条件提前结束执行循环体语句块,转向执行循环语句后面的语句。只要执行break语句,程序将立即退出正在执行的循环体,循环中break语句之后的语句将被跳过,并且循环的执行也将终止,而转去执行循环之后的其他语句。3.3 循环语句循环语句v continue语句类似于break语句,但它不会使循环终止。continue语句通常用来根据某个条件绕过循环中的一组语句,否则,循环将会继续执行。即continue语句用于提前
10、退出本次循环的操作。v continue语句与break语句的区别在于:continue语句仅结束本次循环,并返回到循环的起始处,然后判断循环条件是否满足,如果满足则继续执行循环体语句;break语句则是跳出循环体,不管条件是否成立都不再执行循环体中的语句转而执行循环后的语句。3.3 循环语句循环语句v 3.3.5 九九乘法表v【例3-18】输出完整的乘法表def main():for i in range(1,10):for j in range(1,10):print(i,*,j,=,i*j,t,end=)print()if _name_=_main_:main()3.3 循环语句循环语句
11、v【例3-19】输出左上三角形乘法表。def main():for i in range(1,10):for j in range(1,11-i):print(i,*,j,=,i*j,t,end=)print()if _name_=_main_:main()3.3 循环语句循环语句v 3.3.6遍历字符串v 在Python中,没有独立的字符数据类型,字符是长度为1的字符串。遍历字符串就是逐个访问字符串中的字符,这是一个重复的动作,每次都是访问字符串中的一个字符,所以可以使用循环语句实现字符串的遍历。v Python中访问字符串,如果只访问其中一部分,可以使用“”来截取字符串,例如:str=He
12、llo World!v print(第1个字符是:,str0)#字符串中第1个字符的索引为0v print(第2个到5个字符是:,str1:5)#切片3.3 循环语句循环语句v 3.3.7遍历字典、列表和元组v 字典是由键和对应的值成对组成,字典也被称作关联数组或哈希表。Python内置的字典数据类型为dict。v 列表是一组有序项目的数据结构。v 元组是一组有序系列,包含0个或多个对象引用,元组和列表十分相似,但元组是不可变对象,不能对其进行修改、添加或删除项目,但可以访问元组中的项目。v 与字符串类似,字典、列表和元组都是系列数据,创建后可以通过循环实现对其元素的访问操作,即对其进行遍历。
13、3.3 循环语句循环语句v 3.3.8pass语句v Python提供了一个关键字“pass”,类似于空语句,可以用在类和函数的定义中或者选择结构中。v 当暂时没有确定如何实现功能,或者为以后的软件升级预留空间,或者其他类型功能时,可以使用该关键字来占位。3.3 循环语句循环语句v 首先介绍了Python中语句书写规则,需要注意的是Python中使用缩进来体现语句之间的层次v 接下来重点介绍了分支结构的和循环结构的语法及其应用v 除此之外介绍了用于控制循环的break语句和continue语句,这2个语句的共同作用是提前停止正在执行的循环,break语句的作用是跳出循环体,执行循环体之后的语句
14、,而continue语句的作用是跳过本次循环回到循环的开头继续执行循环体语句。3.4 本章小结本章小结实践与练习实践与练习v 一、填空题v 1、Python程序中的3种基本控制结构是_、_和_。v 2、Python中注释的方式有2种,分别是_和_。v 3、实现选择结构的3种基本语句分别是_、_和_。v 4、Python提供了_和_实现循环控制。实践与练习实践与练习v 二、简答题v 1、简要介绍Python语句书写格式要求。v 2、简要介绍break语句和continue语句的特点及区别。v v 三、编程题v 1、根据所输入的4位数年份判断是否是闰年。(闰年:能被4整除但是不能被100整除或者能
15、被400整除)。v 2、编写程序,输出由1、2、3、4这4个数字组成的每位数都不相同的所有三位数。实验指导实验指导题目题目1利用流程控制判断三角形类型利用流程控制判断三角形类型v1 任务描述v 输入三角形的三条边a,b,c,判断它们能否构成三角形。若能构成三角形,指出是何种三角形(等腰三角形、直角三角形、一般三角形)。v2 任务要求v1)能够利用input()函数输入三角形的3个边,并进行类型转换。v2)能够知道构成三角形的条件。v3)能够根据三条边的关系判断三角形的类型。实验指导实验指导v 3 知识点提示v 本任务主要用到以下知识点:v 1)if语句。v 2)ifelse语句。v 3)ife
16、lifelse语句v 4)if语句的嵌套v 4 操作步骤提示v 简单提示一下操作步骤:1)分别输入三角形的3个边长,赋值给a、b、c。2)判断输入的3个边长是否满足两边之长大于第三边,如果满足该条件,则能构成三角形,否则不能构成三角形。3)在能构成三角形的情况下,利用判断语句判断三角形的类型。实验指导实验指导题目题目2计算计算1!+2!+3!+n!(n从键盘输入)从键盘输入)v1 任务描述v 计算1n的阶乘的和,其中n的值由键盘输入。v2 任务要求v1)能够设定循环执行的次数。v2)能够设计循环的嵌套完成具体的任务。v3 知识点提示v本任务主要用到以下知识点:v1)循环的嵌套。v2)循环次数的控制。v3)定义需要的变量并根据具体情况赋不同的初值。实验指导实验指导v 4 操作步骤提示v 简单提示一下操作步骤:1)定义变量并赋初值为0,用于存储阶乘的和,然后由键盘输入n的值。2)外层循环用于求和,循环体中首先应对每个数求阶乘时定义一个变量并赋初值为1。3)内存循环用于求每个数的阶乘。4)外层循环最后应将每个数的阶乘加到原阶乘和上。5)循环外体输出阶乘和。