高中信息技术学考复习必修1数据与计算第三章第一节第二节课时3三种控制结构的程序实现教学课件
展开考点1顺序结构的程序实现1.程序实现:按照算法中的顺序逐步实现。范例:已知初速度、加速度和时间,求位移。
v0=flat(input('请输入初速度:'))a=flat(input('请输入加速度:'))t=flat(input('请输入时间:'))s=v0 * t+a * t * * 2/2print('位移了',s,'米')
2.互换两个变量值(1)直接交换(如下第3行代码所示)a=1b=2 #交换a、b两个变量值print(a,b)>>>2 1(2)其他常用方法①借助第三变量:t=a;a=b;b=t②“加减”法 a=a+b;b=a-b;a=a-b③“乘除”法 a=a * b;b=a/b;a=a/b
(3)实践:分别用上述3组语句替代加框处代码,并运行查看结果。
典例1每个算法都包含( )A.顺序结构 B.分支结构 C.循环结构
典例2已知a=1;b=2,以下能实现交换a、b两个变量值的程序段是 。(多选,填序号) ①t=a;a=b;b=t ②a=a+b;b=a-b;a=a-b ③a,b=b,a ④a=b;b=a ⑤a=a * b;b=a/b;a=a/b
考点2分支(选择)结构的程序实现1.程序实现:用if语句来实现。2.行尾冒号:表示在下一行,Pythn将要创建一个下一级的语句块,该语句块将整体缩进一级(4个空格)。
3.if语句(1)格式if <条件>: <语句块1>[else: <语句块2>]①if后的条件成立,则执行语句块1;不成立,则执行语句块2。②语法中[]部分是可以省略的。当程序只需要对条件成立的情况做出处理时,else及“语句块2”部分可以省略。
典例3功能为“求绝对值”的程序流程图如下。
为实现上述功能,划线处填上合适的代码。a=flat(input('请输入a的值:')) a=-aprint('a的绝对值为:',a)
答案 if a<0: 解析 流程图为单条件、单语句块的分支结构,采用if <条件>:
典例4以下流程的功能是根据海伦公式求三角形面积(增加三角形三边长是否合理的判断)。
为实现上述功能,请在划线处填上合适的代码。a=flat(input(″请输入a:″))b=flat(input(″请输入b:″))c=flat(input(″请输入c:″)) p=(a+b+c)/2 print(S) print(″三边长有误!″)
答案 if a>0 and b>0 and c>0 and a+b>c and b+c>a and a+c>b:s=(p * (p-a) * (p-b) *(p-c)) * * 0.5else:
4.if-elif语句(1)格式if <条件1>: <语句块1>elif <条件2>: <语句块2>……elif <条件n>: <语句块n>[else:<语句块n+1>]
①只有第1个条件跟在if后面,其他条件都跟在elif后面。②只要某个条件成立,就执行其相应的语句块,然后退出该分支结构。③elif表示对上一条件的否定并同时引导一个新的条件。④else是对最后1个条件(条件n)的否定,若所有条件均不成立时,程序需要做的处理就是“语句块n+1”的内容。⑤语法中[]部分是可以省略的。当程序不需要对所列条件均不成立的情况做出处理时,else及“语句块n+1”部分可以省略。
典例5以下Pythn小程序用于实现考试等第评定的功能。评定规则如下:90及90以上为A等;85及85以上,90以下为B等;75及75以上,85以下为C等;60及60以上,75以下为D等;60以下为E等。为实现上述功能,请在划线处填上合适的代码。s=flat(input('请输入成绩:')) s>100 r s<0: print('成绩不合理!请重输!') s>=90: print(str(s)+'分是A等!') s>=85: print(str(s)+'分是B等!') s>=75:
print(str(s)+'分是C等!') s>=60: print(str(s)+'分是D等!') print(str(s)+'分是E等!')
答案 if elif elif elif elif else:
(2)范例:第1个fr,默认以回车为结束符输出序列中的数;第2个fr,以逗号为结束符输出序列中的数。
考点3循环结构的程序实现1.程序实现:通过fr语句和while语句来实现。2.print( )函数的end=″参数(1)作用:设置print( )函数的结束值。下一次对print( )函数的调用结果将会从结束值的右边开始。print( )函数默认以换行符作为结束值。
3.fr语句(1)格式fr <变量> in <序列>: <循环体>(2)通过遍历序列中的元素实现循环,并通过序列的元素数量来控制循环次数→循环次数等于序列的元素个数;从第1个元素开始,每次循环从序列中按序取1个元素作为本次循环的变量值,并执行一遍循环体中的代码。(3)注意点①序列后的冒号不要遗忘②循环体缩进
(4)遍历字符串每次循环,变量依次指向字符串中的一个字符。格式如下:fr 变量 in 字符串: <循环体>
典例6有如下Pythn程序段:s='为学须先立志'fr i in s:print(i,end=',')执行上述代码,输出的结果为 。
答案 为,学,须,先,立,志, 解析 fr遍历字符串s中的每个字符,且每次以,结束。
(5)遍历列表每次循环,变量依次指向列表中的一个元素。格式如下:fr 变量 in列表: <循环体>
典例7有如下Pythn程序段:list=['笃',False,'志',3.14,'博',[1,2,3],'学']ans=″fr i in list:if type(i)==str: ans=ans+iprint(ans)执行上述代码,输出的结果为 。
答案 笃志博学 解析 fr遍历列表list中的每个元素,i为当前遍历的元素,if语句判断当前元素是否为字符串型,是则将其连接到结果串ans。
(6)遍历字典①遍历字典的键(方法1)每次循环,变量依次指向字典中的一个键。格式如下:fr 变量 in 字典名: <循环体>
②遍历字典的键(方法2)每次循环,变量依次指向字典中的一个键。格式如下:fr 变量 in 字典名.keys(): <循环体>
③遍历字典的值(方法1)每次循环,变量依次指向字典中的一个键。格式如下:fr 变量 in 字典名: <循环体中用“字典名[变量(键)]”指向字典中当前元素的值>
典例8有如下Pythn程序段:inf={'姓名':'王晓崇','性别':'男','国籍':'中国'}fr i in inf:print(inf[i],end=',')执行上述代码,输出的结果为 。(单选,填字母:A.姓名,性别,国籍,\B.王晓崇,男,中国,)
答案 B 解析 循环内是inf[i]→遍历值。
④遍历字典的值(方法2)每次循环,变量依次指向字典中的一个值。格式如下:fr 变量 in 字典名.values(): <循环体>
典例9(多选)以下4个Pythn程序段,能用于遍历输出字典所有键的是( )
(7)range函数①作用:指定序列中元素的个数和范围。②格式:如下range([start,] stp[,step])③参数<1>start:计数从start开始。默认是从 0 开始。例如range(5)等价于range(0,5)。 <2>stp:计数到 stp 结束,但 (还是满足“前闭后开”规则)。例如:range(0,5) 是[0,1,2,3,4],没有5。 <3>step:步长,默认为1。例如:range(0,5) 等价于 range(0,5,1)。
(8)遍历整数序列①若fr语句遍历的序列中的元素为有序整数,则可以利用内建函数range( )来创建②每次循环,变量依次指向序列中的一个整数。格式如下:fr 变量 in range(start,stp,step): <循环体>
典例10要输出所有包含数字6的三位正整数。实现上述功能的Pythn程序如下,请在划线处填上合适的代码。#输出所有包含数字6的三位正整数c=0fr i in range( ① ): if ② : ③ print(i)print('共有',c,'个包含数字6的三位正整数')
答案 ①106,997,1 ②i // 100==6 r i // 10 % 10==6 r i % 10==6或者str(i)[0]=='6' r str(i)[1]=='6' r str(i)[2]=='6'或者'6' in str(i) ③c+=1 解析 ①第1个满足包含6的三位正整数是106,最后1个是996,遵循“前闭后开”规则→start参数为106,stp参数为[997,1000]之间的正整数,步长为1(可以省略不写)。②循环体中的当前3位正整数i的个、十、百位中只要有1个为6就是满足条件的数→用逻辑运算r。百位:i // 100;十位:i // 10 % 10;个位:i % 10。③从最后一句输出的print()函数的参数可知:变量c用于指向满足条件的数的个数,fr前c清零,循环内部满足if后的条件,则个数加1→计数器:c=c+1或者写成c+=1。
4.while语句(1)格式while <条件>: <循环体>(2)执行过程:首先判断条件是否为真,若条件为真,则执行一次循环体,再次判断条件是否为真,若仍为真,则再执行一次循环体,以此类推,直到条件为假时退出while语句。(3)作用:已知次数的循环用fr(循环次数即遍历序列的元素个数)。在循环执行前不知道其需要执行的次数时用while循环。
典例11要将1个十进制数转二进制数。实现上述功能的Pythn程序如下,请在划线处填上合适的代码。d=int(input('请输入1个十进制正整数:'))#方法1:除二取余(循环执行直至被除数为0)ans=″b=d ① y=b % 2 ② ans=str(y)+ansprint('十进制数',d,'的二进制值为:',ans)
答案 ①while b!=0: ②b=b // 2解析 ①十进制转二进制前不知道需要除二取余几次才能得到结果→用while不用fr。除二取余终止的条件是被除数为0→反之只要被除数不为0,则除二取余(循环) →满足条件b!=0(被除数不为0)时循环。②每次循环得到本次除二取余的余数后,要为下次循环做好准备→更新下次除二取余的被除数的值→用当前的被除数除二取商得到b=b // 2。
5.强行跳出循环:break(1)while循环在条件为假时结束,fr循环在遍历完序列后结束。若循环条件仍然为真或者序列没有遍历完时,想要强行跳出循环,可以用break语句。
典例12判断一个正整数是否为素数(在大于1的自然数中,除了1和其本身以外,不能被任何一个数整除)的Pythn程序如下,请在划线处填上合适的代码。判断是否为素数num=int(input('请输入1个十进制正整数:'))cs=2flag=Falsewhile ① : if ② : flag=True ③ cs=cs+1if ④ : print(num,'是素数')else:print(num,'不是素数')
答案 ①cs<=num-1 ②num % cs==0: ③break ④flag==False 解析 ①除数的范围是2→num-1 ②循环内部判断数num是否能被当前除数cs整除→num % cs==0 ③只要num能被2→num-1之间任何一个除数cs整除,就不是素数,后面的除数不用再验证了,所以要终止循环→break ④循环中被整除→num不是素数时,flag←True,所以flag为True代表着不是素数。
6.cntinue语句(1)作用①cntinue语句用在while和fr循环中。②cntinue 语句用于跳过本次循环剩余的语句不执行,直接进入下一次循环。典例13用pythn编制小程序,用于计算评委们给选手评分的统计结果。输入评委数和每位评分的评分,然后去除一个最高分和一个最低分,统计其他评分的平均值作为评分结果。程序界面如图所示。
程序代码如下:pws=int(input('请输入评委数:'))pingfen=[ ]fr i in range(1, ): pingfen.append('评委'+str(i))pingfen.append(flat(input('请输入评委'+str(i)+'的评分:')))print(pingfen) ;list=[ ] fr i in range(0,len(pingfen)):if i % 2==0: sum+=pingfen[i]list.append(pingfen[i])defen=rund((sum-max(list)-min(list))/(len(list)-2),2)print('去掉1个最高分:'+str(max(list))+',去掉1个最低分:'+str(min(list))+',选手的最后得分是:'+str(defen))
7.cntinue和break的区别Pythn cntinue 语句跳出本次循环,而break跳出整个循环。8.循环嵌套循环结构中,允许在一个循环体里面嵌入另一个循环。
典例14输出当前序列中所有素数的Pythn程序如下,请在划线处填上合适的代码。b=int(input('请输入一个正整数作为序列起点:'))e=int(input('请输入一个正整数作为序列终点:'))① fr i in range ( ② ): cs=2flag=False#以下while循环(内循环)嵌套在fr循环(外循环)中
while cs <=i - 1:if i % cs==0: flag=True breakcs=cs + 1
高中信息技术学考复习必修1数据与计算第三章第三节简单算法及其程序实现教学课件: 这是一份高中信息技术学考复习必修1数据与计算第三章第三节简单算法及其程序实现教学课件,共15页。
高中信息技术学考复习必修1数据与计算第三章第一节第二节课时4函数与模块教学课件: 这是一份高中信息技术学考复习必修1数据与计算第三章第一节第二节课时4函数与模块教学课件,共36页。PPT课件主要包含了·范例,2引入模块等内容,欢迎下载使用。
高中信息技术学考复习必修1数据与计算第三章第一节第二节课时2基本数据结构教学课件: 这是一份高中信息技术学考复习必修1数据与计算第三章第一节第二节课时2基本数据结构教学课件,共59页。PPT课件主要包含了右侧字符,左侧字符,2n→换行,3r→去除转义,右侧元素,左侧元素等内容,欢迎下载使用。