资源简介 浙教版信息技术必修一《数据与计算》第三章 算法的程序实现(2)【知识结构体系】【知识梳理】(二)顺序结构的程序实现1.程序样例将两个整型变量a,b的值互换‘#’后面的内容为注释,对程序代码进行解释、说明,程序运行时不执行。拓展:两个变量值的互换也可表示为a,b=b,a。2.Python常见内建函数(1)input([prompt]):获取输入,函数的参数为输出提示字符,返回值为字符串类型(2)print():输出内容到控制台。当参数只有一个,会自动将非字符类型转为字符类型后输出。当参数有多个,可以用逗号连接后转换位字符串输出。例:print(10);print(10,”全”,10,”美”)(3)int(object[,base]):将数值字符串转为整数类型,base声明进制类型,默认base=10。返回值为十进制整数类型。例int(“FF”,16)=255(三)分支结构的程序实现1.if语句一般格式条件是一个表达式,它的值可以是真(True)或假(False)。当条件为真时,执行语句块1中的语句,否则(条件为假)执行语句块2中的语句。如果程序只需要对条件为真的情况做出处理,那么if 语句可省略else及语句块2 部分,格式变成:(1)Python中行位冒号的作用是告诉Python接下来要创建一个新的语句块,因此冒号结尾后,接下来应该有缩进(2)Python用代码缩进表示代码间的包含关系,同一级别代码缩进相同(3)当<判断条件>为True才执行对应分支语句块2.if-elif语句当程序需要对多个条件进行判定时,可以用带有elif子句的if语句来实现,其格式为:(1)一个if语句可以包含多个elif语句,最后一个else子句是可选的,仅当其if语句中的条件为假时才执行。(2)elif 和 else 并非必须,且当前面有条件(if)满足后,后面的判断(elif)会直接跳过,不执行。3.样例程序(四)循环结构1.for语句格式为:(1)for语句通过遍历序列中的元素实现循环,序列中的元素会被依次赋值给变量,然后执行一次循环体。当序列中的元素全部遍历完时,程序会自动退出循环,继续执行else子句中的语句块(该else子句可选)。(2)for循环是有限次循环,<循环对象>可以是字符串、列表,也可以是range()函数。(3)range(start,stop,step)格式和字符串或列表切片类似。如range(0,10,1)能生成0-9这10个整数序列。start缺省时默认值为0,步长step缺省时默认值为1.(4)continue:结束当前次循环,进入下一次循环(5)break:若循环过程中执行了循环体中的break语句,则程序会中途退出for语句,转而去执行for语句后面的语句(即使有else子句,该子句也不会被执行)。(6)样例程序2.while语句当一个循环执行之前,可能并不知道它需要执行的次数。这时,就可以使用while循环。其常见格式如下:(1)while循环在执行时,首先会判断条件是否为真,如果条件为真,执行一次循环体,再次判断条件是否为真,如果仍为真,那么再执行一次循环体,以此类推,直到条件为假时退出while 语句。(2)while语句的判断条件如果不当,可能会造成“无限循环”。(3)break:结束并退出当前层循环(4)continue:结束当前次循环,进入下一次循环(5)样例程序(五)函数与模块1.函数的构造及应用定义函数的语法为:(1)函数名的命名规则和变量名一样。完成函数的构造后,在程序中就可以根据需要调用该函数。(2)函数参数可以设置默认值:<参数3>=<默认值>(3)return 语句用于返还函数处理结果,并且结束函数运行(4)函数内部变量为局部变量,当需要使用全局变量时需要用global声明2.模块的导入及应用(1)导入函数模块的方法使用import语句或from-import语句可导入模块,具体用法包括以下4种:①import <库名>②import <库名> as <重命名>③from <库名> import <函数名>④from <库名> import *示例如下:(2)math模块(3)random模块(4)Image模块Image 模块是PIL 库(Python Imaging Library)中的重要模块,可以获取图像尺寸和像素颜色、旋转图像或改变图像格式等。(5)其他模块用于实现部分操作系统功能(可用于文件、目录等操作)的os模块;与时间处理有关的time模块;可以实现科学计算、数据可视化的numpy和matplotlib;用于多媒体开发和游戏软件开发的pygame模块;支持图形处理的tkinter。三、简单算法及其程序实现(一)解析算法及其程序实现用数学公式或解题步骤计算结果样例:鸡兔同笼问题:今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何 head,foot = eval(input("请输入头和足的数量,格式是:头,足"))rabbit = (foot-head*2)/2chick = head-rabbitprint("兔子有{}只,鸡有{}只".format(rabbit,chick)(二)枚举算法及其程序实现枚举算法的基本思想是把按一定的顺序一一列举问题所有可能的解,然后判断每一个列举出的可能解是否为正确的解。在枚举算法的程序实现中,逐一列举出每一个可能解,判断其是否为正确解的过程可采用循环结构来实现。而在利用问题提供的约束条件筛选、判断解的过程中则需要用到分支结构。样例:head,foot = eval(input("请输入头和足的数量,格式是:头,足"))for rabbit in range(foot//4):if rabbit*4+(head-rabbit)*2==foot:print("兔子有{}只,鸡有{}只".format(rabbit,head-rabbit))(三)算法程序实现的综合应用【典型例题】1.设a=2,b=3,c=4,d=5,表达式a>b and c<=d or 2*a>c的值是( )A.True B.False C.-1 D.12.列表a存储某校部分学生的姓名、身高(cm),编程求身高最高的学生姓名,python代码如下:程序运行结果如下: 最高的学生姓名是小李a=[["小丽",169],["小明",167],["小红",166],["小李",179],["小吴",171],["小刚",177]]stui=0for i in range(len(a)): if ① : stui=iprint("最高的学生姓名是",② )上述程序段①、②处的语句分别为( )A.①a[i]>a[stui] ②a[stui][0]B.①a[i]>a[stui] ②a[i][0]C.①a[i][1]>a[stui][1] ②a[stui][0] D.①a[i][1]>a[stui][1] ②a[i][0]3.列表a中有10个数据,用如下程序段找出大于60的数的个数,画线处可以填( )a=[35,23,98,43,86,31,29,57,62,78] n=θ m=6θ for i in a: if _____: n+= 1 print("个数: ",n)A.a[i]>m B.i>m C.a>m D.a(i)>m4.将正整数n分解为两个正整数之和,其中一个能3整除,另一个能被7整除。统计分解方法共有几种的Python程序段如下:cnt = 0i = 7while i < n :print(cnt)方框中的代码由以下三部分组成:① i = i + 7 ② j = n – i ③ if j % 3 == 0 : (换行)) cnt = cnt + 1下列选项中,代码顺序正确的是( )A.①③② B.②③① C.③②① D.②①③5.运行以下Python代码的结果是( )s="" for i in range(1,4): for j in range(1,i+1): s=s+" "+str(i+j) print(s) s="" 空字符串 A. 2 2 4 4 6 8 B. 2 3 4 5 6 7C. 2 3 4 4 5 6 D. 2 2 3 4 5 6A.A B.B C.C D.D6.有如下 Python程序段:from random import *a = [10,20,30,40,50]key = randint(0, 100)# randint(p,q)用于生成区间[p,q]内的随机整数x = y = 0i,j = 0, len(a) - 1while i <= j: m = randint(i,j) x += 1 if a[m] < key: i = m + 1 y += 1 else: j = m - 1 y -= 1执行该程序后,下列说法不正确的是( )A.变量 x和y的值可能为1 和-1B.变量 x 和 y的值可能为4 和-2C.若 key为50, 则变量x和y的值可能为5和5D.若 key为35, 则变量x和y的值可能为5和1题号 1 2 3 4 5 6答案 B C B B C C【参考答案】 展开更多...... 收起↑ 资源预览