专题十一 控制结构(讲义)-《Python程序设计》职教高考备考讲练测(安徽省)

2025-04-01
| 14页
| 154人阅读
| 1人下载
精品

内容正文:

专题十一 控制结构 [考纲要求] 1.了解顺序结构的定义 2.了解选择结构的定义 3.熟练掌握选择结构,尤其是多分支选择结构 4.熟练掌握循环结构 5.培养循环结构综合应用的能力 6.了解循环控制语句的定义 7.掌握使用循环控制语句 [课时安排] 2课时 [知识梳理] 顺序结构 定义描述 顺序结构是按语句的先后顺序逐条执行,直到执行程序的最后一条语句为止。 也就是程序没有任何分支,自上而下执行。 顺序结构的流程图(N-S流程图) 示例: a=2024 b=1 s=a+b print(s) 选择结构 定义 选择结构可以控制程序的流程,从给定的一种或多种操作中选择一种执行。不同的执行流程就是程序的一个分支。 单分支选择结构 语法结构: if 条件表达式: 语句块 条件表达式为True则执行if作用域的语句块,反之则不执行 注意:每个条件表达式后需要一个冒号“:”表示紧跟着的是符合条件时执行的语句块。语句块只有一行代码可以写在冒号的后面。 【示例】输入一个年龄,如果大于等于18周岁,则输出“你已成年”。 age=eval(input("请输入你的年龄:")) if age>=18: print("你已成年") 使用独立的多条单分支选择结构解决多种情况下的问题时,只要各条件相互矛盾,程序只会执行满足条件的一个语句,忽略其他选择结构的语句。语法结构如下: if 条件1: 语句块1 if 条件2: 语句块2 if 条件3: 语句块3 … 【示例】键盘输入a,b两个值,输出a,b的关系(大于、小于、等于) a, b = eval(input("请输入a,b的值:")) if a > b: print("a大于b") if a < b: print("a小于b") if a == b: print("a等于b") 双分支选择结构 双分支选择结构:若条件为True,则执行紧跟着的语句块1,忽略语句块2;若条件为False,则执行语句块2,忽略语句块1.流程图如图所示: 双分支选择结构的语句格式: if 条件表达式: 语句块1 else: 语句块2 【示例】键盘输入一个三位数的整数,判断是否为水仙花。例如:153它的1**3+5**3+3**3==153 因此是水仙花。 num = int(input("请输入三位数的整数:")) a = num // 100 # 百位 b = num // 10 % 10 # 十位 c = num % 10 # 个位 if a ** 3 + b ** 3 + c ** 3 == num: print(f"{num}是水仙花") else: print(f"{num}不是水仙花") Python提供了一种简化的条件运算,条件运算符是一种三目运算符,它有3个运算对象,语法格式如下: 表达式1 if 表达式 else 表达式2 条件运算的规则:首先计算if后面表达式的值,如果值为True,则计算表达式1,并将表达式1的值作为条件运算的结果。否则将表达式2的值作为条件运算的结果。示例: x, y = 30, 90 res = x if x > y else y print("x和y中的最大值:", res) 多分支选择结构 多分支选择结构:逐个检查条件,直到其中一个条件为True,执行紧跟着的语句块,忽略其他语句块。流程结构图如下: 语法格式如下: if 表达式1: 语句块1 [elif 表达式2: 语句块2] ... [elif 表达式n: 语句块n] [else: 语句块 n+1] 【示例】将成绩(百分制)划分为4个等级:85分及以上代表优秀,70~84分代表良好,60~69分为及格,60分以下为不及格。要求从键盘输入成绩后输出相应的等级。 score = eval(input("请输入成绩:")) if 85<=score<=100: print("优秀") elif score >= 70: print("良好") elif score >= 60: print("及格") elif 0<=score<60: print("不及格") 选择结构的嵌套 如果有多个条件并且条件之间存在递进关系,则可以在一个选择结构中嵌入另一个选择结构,形成选择结构的嵌套。在内部的选择结构中还可以继续嵌入选择结构,嵌套的深度是没有限制的。 在if-else语句中嵌入if-else语句: if 表达式1: if 表达式2: 语句块1 else: 语句块2 在if-else语句中嵌入if语句: if 表达式1: if 表达式2: 语句块1 else: 语句块2 【示例】键盘输入用户名,如果用户名是“admin”则继续输入密码。否则输出“用户名错误”,如果输入的密码是“123456”,则输出“登录成功”。否则输出“密码错误”。 usrname = input("请输入用户名:") if usrname == "admin": pwd = input("请输入密码:") if pwd == "123456": print("登录成功") else: print("密码错误") else: print("用户名错误") 循环结构 在实际应用中,经常需要周而复始地做某一件事。针对此类问题,在Python中可以编写循环结构的程序来解决此类问题。 循环结构是控制一个语句块重复执行的程序结构,由循环条件和循环体两部分组成,循环结构的特点是:在一定条件下重复执行某些语句,直至重复到一定次数或该条件不再成立为止。 for循环 for循环定义 在Python中for循环常用于遍历字符串、列表、元组、字典、集合等序列类型。逐个获取序列中的各个元素,迭代变量用于存放从序列中逐个取出的元素,所以一般不会在循环中对迭代变量手动赋值。每条for语句后需要一个冒号“:”,表示紧跟着的是执行循环的语句块。 for循环结构流程图: for循环结构语法: for 迭代变量 in 字符串|列表|元组|字典|集合: 语句块 示例: 遍历列表里面的元素 for i in [1,2,3,4,5]: print(i) range()函数 在for循环中可用内置函数range()方便快捷的生成一个整数序列。Python中range()函数格式说明如下: range(start,stop[,step]) 参数说明: start:计数从start开始,默认是从0开始,如range(4)等价于range(0,4)。 stop:计数到stop结束,但并不包括stop.如range(0,4)是包含数字[0,1,2,3],并没有4. step:步长,默认为1。如range(0,4)等价于range(0,4,1) 列表推导式 可以通过列表推导式快速高效的创建新的列表 1.[表达式 for 迭代变量 in 可迭代对象] 打印出1-10的数字 >>> [i for i in range(1,11)] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 2.[表达式 for 迭代变量 in 可迭代对象 if 条件表达式] 打印出1-10之间的偶数 >>> [i for i in range(1,11) if i%2==0] [2, 4, 6, 8, 10] 3.[表达式 for 迭代变量 in 可迭代对象 for 迭代变量 in 可迭代对象]其实就是双层for循环 >>> lst = [i % j for i in range(1, 3) for j in range(1, 4)] >>> lst [0, 1, 1, 0, 0, 2] 上面的代码等价于下面的双层for循环 lst=[] for i in range(1, 3): for j in range(1, 4): lst.append(i%j) print(lst) # [0, 1, 1, 0, 0, 2] 除了列表推导式,还有集合推导式,字典推导式。没有元组推导式 dict1 = {i: i ** 2 for i in range(1, 5)} print(dict1) # {1: 1, 2: 4, 3: 9, 4: 16} 将字典的键和值互换 dict1 = {0: 'red', 1: 'green', 2: 'blue'} dict2 = {v: k for k, v in dict1.items()} print(dict2) while循环 Python中,while循环执行顺序为:判断条件为True,执行语句块1,直到条件为False时退出循环,执行else子句的语句块2(else子句可以省略)。while循环结构流程图如图所示: 根据上述流程对应的语句格式如下: while 表达式: 语句块1 [else: 语句块2] 【示例】使用while循环语句来计算整数1到10的和 s = 0 i = 1 while i <= 10: s += i i += 1 print(s) 循环结构的嵌套 一个循环体里面嵌套另外一个循环体时,称之为“循环嵌套”。for语句和while语句循环嵌套语法格式如下: for循环嵌套语句: for 变量1 in 遍历序列1: for 变量2 in 遍历序列2: 语句块2 语句块1 while循环嵌套语句: while 条件表达式1: while 条件表达式2: 语句块2 语句块1 当然可以while循环中可以嵌入for循环,可以在for循环中嵌入while循环。 【示例】使用while循环打印九九乘法表。运行结果如下所示: for i in range(1, 10): for j in range(1, i + 1): print(f"{j}*{i}={j * i}", end="\t") print() 循环控制语句 break语句 break语句:用在while和for循环中,通常与if语句一起使用,可以用来跳出当前所在的循环结构,即使循环还在执行,也会立即停止执行的循环语句,跳出循环体(如果有else子句,则不会执行),继续执行循环下面的语句。 for 循环变量 in 序列对象: 语句块(循环体) [else: 语句块] 如果for和while循环里面的语句块有break子句,且执行了break语句那么else里面的子句不会执行。 来看看下面的代码: for i in range(1, 10): if i == 10: break print(i) else: print("hello") 思考1:上面的"hello"会打印出来吗? i = 1 while i <= 10: if i == 5: break i += 1 print(i) else: print("hello") 思考2:上面的"hello"会打印出来吗? continue语句 continue用于跳过本次循环,continue也是用在while和for循环中,通常也是与if语句一起使用,但是与break有所不同,continue语句用来跳过当前循环的剩余语句,然后继续执行下一轮循环,而break语句则是用于停止本层的整个循环。 展示continue与break的区别: for i in range(1, 10): if i == 5: continue print(i) for i in range(1, 10): if i == 5: break print(i) pass语句 为了保持程序结构的完整性,Python提供了一个空语句pass,pass语句一般仅作为占位语句(占位符),不做任何事。 for i in range(1,11): pass [限时练习] 1.键盘输入a,b两个值,计算出a,b的乘积c并输出c的结果 【答案】 a,b=eval(input("请输入a,b的值:")) c=a*b print(c) 【解析】键盘输入a,b的值,再计算a*b的乘积并赋值给变量c 2.键盘输入年龄,若大于等于18岁则输出"全票"。 【答案】 age=int(input("请输入年龄:")) if age>=18: print("全票") 【解析】键盘输入年龄并赋值给变量,再使用关系运算符判断。 3.键盘输入正整数,判断奇偶数。若是奇数输出"奇数",若是偶数数输出"偶数"。 【答案】 n=int(input("请输入正整数:")) if n%2==1: print("奇数") else: print("偶数") 【解析】键盘输入整数,若与2取余数为1则是奇数,否则是偶数 4.将成绩s(百分制)划分为4个等级:85分及以上代表优秀,70-84分代表良好,60-69分为及格,60分以下为不及格。要求从键盘输入成绩后输出相应的等级。 【答案】 s=int(input("请输入成绩:")) if 0<=s<=100: if s>=85: print("优秀") elif s>=70: print("良好") elif s>=60: print("及格") else: print("不及格") else: print("输入错误!") 【解析】由于是百分制,因此可以先判断整体的范围(0-100),再使用多分支选择结构来分层判断。 5.for循环找出所有的水仙花(三位数的整数,且每个位数的立方之和等于其本身)。 【答案】 for n in range(100,1000): bw=n//100 sw=n//10%10 gw=n%10 if bw**3+sw**3+gw**3==n: print(n) 【解析】所有的三位数的范围[100,1000),再使用算术运算符取出百位、十位、个位。使用if条件来找出符合条件的三位数整数 6.随机生成1-20之间的数字num,然后从键盘输入数字,如果输入的数字大于num,则输出“猜的数字偏大”。如果输入的数字小于num,输出“猜的数字偏小”。猜对数字,则输出“恭喜,猜对啦”并且退出循环。 【答案】 import random num=random.randint(1,20) while True: n=int(input("请输入数字:")) if n==num: print("恭喜,猜对啦") elif n>num: print("猜的数字偏大") else: print("猜的数字偏小") 【解析】先导入random模块,随机生成1-20之间的整数。再在while True的无限里面让用户输入数字,直到猜对使用break退出。 [归纳小结] 学科网(北京)股份有限公司 $$

资源预览图

专题十一 控制结构(讲义)-《Python程序设计》职教高考备考讲练测(安徽省)
1
专题十一 控制结构(讲义)-《Python程序设计》职教高考备考讲练测(安徽省)
2
专题十一 控制结构(讲义)-《Python程序设计》职教高考备考讲练测(安徽省)
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。