第三章 算法的程序实现-知识点梳理(含答案) -浙教版(2019)高中信息技术必修1

资源下载
  1. 二一教育资源

第三章 算法的程序实现-知识点梳理(含答案) -浙教版(2019)高中信息技术必修1

资源简介

浙教版信息技术必修一《数据与计算》
第三章 算法的程序实现(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)/2
chick = head-rabbit
print("兔子有{}只,鸡有{}只".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.1
2.列表a存储某校部分学生的姓名、身高(cm),编程求身高最高的学生姓名,python代码如下:
程序运行结果如下: 最高的学生姓名是小李
a=[["小丽",169],["小明",167],["小红",166],["小李",179],["小吴",171],["小刚",177]]
stui=0
for i in range(len(a)):
if ① :
stui=i
print("最高的学生姓名是",② )
上述程序段①、②处的语句分别为( )
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)>m
4.将正整数n分解为两个正整数之和,其中一个能3整除,另一个能被7整除。统计分解方法共有几种的Python程序段如下:
cnt = 0
i = 7
while 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 7
C. 2 3 4 4 5 6 D. 2 2 3 4 5 6
A.A B.B C.C D.D
6.有如下 Python程序段:
from random import *
a = [10,20,30,40,50]
key = randint(0, 100)# randint(p,q)用于生成区间[p,q]内的随机整数
x = y = 0
i,j = 0, len(a) - 1
while 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 和-1
B.变量 x 和 y的值可能为4 和-2
C.若 key为50, 则变量x和y的值可能为5和5
D.若 key为35, 则变量x和y的值可能为5和1
题号 1 2 3 4 5 6
答案 B C B B C C
【参考答案】

展开更多......

收起↑

资源预览