第二单元期末复习课件-2025-2026学年教科版高中信息技术必修一
|
100页
|
415人阅读
|
2人下载
普通
摘要:
这是一份高中信息技术期末复习课件,聚焦必修一“数据与计算”第二单元“编程计算”,涵盖计算机解决问题流程、算法设计、分支与循环结构、函数定义等核心内容,提供算法步骤解析、流程图示例、Python代码练习等学习支架。
资料特色突出,以“大象进冰箱”“BMI计算”等生活化实例渗透计算思维,通过“火柴棒摆数字”“生肖查询”等项目培养数字化学习与创新能力,强调算法有穷性、变量命名规范等信息意识,助力学生掌握编程技能,为教师提供系统教学资源,提升教学效率。
内容正文:
必修一 数据与计算
1
PART TWO
第二单元编程计算
2.1计算机解决问题的过程
2
观察问题
分析问题,选择合适的计算机软件解决问题
没有合适的软件,自己编写软件解决问题
分析问题
设计算法
编写程序
测试验证,运行结果
什么是算法?
算法的描述方法
算法就是解决问题的方法和步骤
算法有优劣之分
解决问题的步骤多少不是衡量算法优劣的依据
算法中的步骤必须是有限的
自然语言
流程图
伪代码
程序设计语言种类
机器语言
汇编语言
高级语言
涉及算法需要思考的知识框架
什么是算法(algorithm)?
算法就是解决问题的方法和步骤
算法有优劣之分
解决问题的步骤多少不是衡量算法优劣的依据
算法的特征:
有穷性:算法的步骤必须是有限的
确定性:算法每一步必须有明确的意义
输出:算法必须保证有结果输出,可以有一个或者多个
输入:算法可以有0个或多个输入
可行性:原则上用纸笔也可精确算出结果
算法的描述
判断抛物线y=ax2+bx+c与x轴是否有交点
开始
输入系数a,b,c的值
计算△(△=b2-4*a*c)
若△<0,则输出无交点
若△>=0,则输出有交点
结束
自然语言描述
流程图描述
开始
输入系数 a,b,c
△=b2-4*a*c
△< 0
输出有交点
输出无交点
结束
是
否
单元回顾,知识梳理(计算机解决问题的过程)
1 分析问题
3 编写程序
2 设计算法
4 调试运行
6
小试牛刀,流程完善(流程符号“归位”)
程序框 名称 功能
起止框
输入/输出框
处理框
判断框
流程线
连接符
请对应《学习任务单》课前任务2,帮助符号“归位”
算法的开始和结束
输入和输出数据
操作的内容
判断的条件
算法运行的方向
接续流程图
7
单元回顾,知识梳理(算法的三种基本结构)
顺序结构
循环结构
分支结构
语句体1
语句体2
从上至下,依次执行
条件判断,选择执行
条件
否
是
语句体1
语句体2
条件
是
否
语句体
条件满足,重复执行
8
例:“大象进入冰箱”的算法表示
用自然语言描述:
S1:拉开象舍门 ;
S2:大象进入象舍;
S3:关上象舍门;
任务一:用流程图表示
S1
S2
S3
顺
序结构
例:“大象太大无法进入”的算法表示
用自然语言描述:
如果大象太大无法进入,那么就换一只小象进入。
任务一:用流程图表示:
选择结构
太大?
换小象
否
是
进入
范例:“三只小象进入冰箱”的算法表示
任务一:用流程图表示:
循环结构
一只小象进入
三只都已进入?
否
是
机器语言由二进制的0、1代码指令构成,能被计算机直接识别。但理解和记忆机器语言非常困难,并且容易出错,编程效率极低。
汇编语言是符号化的机器语言,采用英文助记符代替机器指令,比机器语言容易识别和记忆,从而提高了程序的可读性。但是汇编语言仍然是面向机器的语言,是为特定的计算机系统设计的,它要求软件工程师对相应的机器硬件非常熟悉,因而汇编语言属于低级语言。
高级语言更接近自然语言,并不特指某一个种语言,也不依赖于特定的计算机系统,因而更容易掌握和使用,通用性也更好。比较流行的高级语言有Java、C/C++以及本书使用的Python等。用高级语言编写的程序可读性更强,也便于修改、维护。
练习
1.下列选项中属于字符串常量的是( )
A.1457 B. a*b C."890" D.A,b
2.Python中变量的命名遵循的规则,不正确的是( )
A.必须以字母或下划线开头,后面可以是字母、数字或下划线。
B.区分大小写 C.不区分大小写
D.不能使用保留字
3.下列合法的变量名是 ( )
A. if B. i C. *c D. True
4.以下不是关系运算符的是( )
A.!= B.== C.> D./
练习
5.有如下Python程序,当程序运行后输入15000,则程序输出结果为( )
A.2800 B.2800.0 C.12200 D.12200.0
1.下列问题不适合于编写程序来完成的是( )
A.已知a、b、c的值,求一元二次方程ax2+bx+c=0(a≠0)的实数解
B.计算某个班级高考成绩的平均分
C.列出方程y=3x+9的所有实数解
D.根据圆的半径求面积
C
【详解】本题主要考查计算机编程解决问题。列出方程y=3x+9的所有实数解,不满足算法的有穷性,不适合于编写程序,故本题选C选项。
2.同学们画出流程图后,用Python语言编写代码。这是计算机解决问题过程中的( )阶段。
A.设计算法 B.分析问题
C.编写代码 D.调试运行程序
C
【详解】本题主要考查计算机解决问题的步骤。计算机解决问题的一般步骤是:分析问题→设计算法→编写代码→调试运行程序,用Python语言编写代码。这是计算机解决问题过程中的编写代码阶段,故本题选C选项。
3.以下描述中最适合用计算机编程来处理的是( )
A.确定放学回家的路线 B.计算某个同学期中考试各科成绩部分
C.计算100以内的奇数平方和 D.在因特网上查找自己喜欢的歌曲
C
【详解】本题主要考查计算机编程解决问题。计算100以内的奇数的平方和可以通过循环结构枚举所有可能用计算机编程来解决,故本题选C选项。
4.以下编程语言,代码执行效率最高的是( )
A.Python语言 B.C++语言 C.机器语言 D.汇编语言
C
【详解】本题考查程序设计语言相关内容。程序设计语言的发展共经历了三个阶段:机器语言、汇编语言、高级语言。机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。汇编语言亦称符号语言,采用了助记符号来编写程序,比用机器语言的进制代码编程要方便些。高级语言是与自然语言相近并为计算机所接受和执行的计算机语言称高级语言,Python语言、C++语言属于高级语言。
四个选项中,代码执行效率最高的是C选项。故本题答案是C选项。
5.下列不属于描述算法的方法的是( )
A.伪代码 B.流程图 C.自然语言 D.机器语言
D
【详解】本题考查算法描述相关内容。算法描述方法有:自然语言、流程图、N-S图、伪代码等,机器语言不属于算法描述方法。故本题答案是D选项。
6.下列问题不适合于编写程序来完成的是( )
A.已知a、b、c的值,求一元二次方程ax2+bx+c=0(a≠0)的实数解
B.计算某个班级高考成绩的平均分
C.列出方程y=3x+9的所有实数解
D.根据圆的半径求面积
C
【详解】本题主要考查计算机编程解决问题。列出方程y=3x+9的所有实数解,不满足算法的有穷性,不适合于编写程序,故本题选C选项。
7.高级语言更接近自然语言,并不特指某种语言,也不依赖于特定的计算机系统,因而更容易掌握和使用,通用性也更好,下列不属于高级语言的是( )
A.Java语言 B.Python语言 C.汇编语言 D.C语言
C
【详解】本题主要考查程序设计语言。汇编语言属于低级语言,Java语言、 Python语言、C语言均属于高级语言,故本题选C选项。
8.下面是利用计算机编程解决“鸡兔同笼”问题的几个步骤;①构建数学模型,设计算法;②编写Python程序,用计算机实现;③分析问题,确定计算机解决的问题是鸡和兔子的只数。正确的顺序是( )
A.①②③ B.①③② C.③①② D.②③①
C
【详解】本题考查的是计算机解决问题过程。计算机解决问题的基本过程是:分析问题→构建数学模型→设计算法→编写程序→调试程序,故本题应选C。
9.在编制计算机程序解决问题的过程中,学习小组经历了(1) 、(2) 、(3)编写程序 、 (4)分析问题 这些过程,请你为这些过程进行正确的排序 (提示:写出序号即可)。
10.用计算机解决问题的过程中,将程序输入到计算机进行检查、测试和运行,得到正确的结果。这一环节是
设计算法 调试运行程序 (4)(1)(3)(2)
调试运行程序
11.计算机编程解决问题的过程分为4步,分别是 、 、 、 ,其中 是信息编程加工的核心步骤。
程序设计的一般过程是分析问题、设计算法、编写程序、运行调试。编写程序。
12.
@@@@########$$$$
PART TWO
第二单元编程计算
2.2做出判断的分支
25
02 编程计算
1.常量:在程序运行过程中值始终保持不变的量称为常量。
例如:π,一周的天数7,一年的月份12,性别的种类2等。
2.变量:在程序运行过程中值允许改变的量称为变量。
在Python中,变量的命名需遵循以下几条规则
①必须以字母或下划线开头,后面可以是字母、数字或下划线。
②区分大小写。
③不能使用保留关键字(‘False’, ‘True’, ‘and’, ‘break’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘ for’, ‘from’, ‘if’, ‘import’, ‘in’, ‘is’, ‘not’, ‘or’, return等)。
26
02 编程计算
3.
4.赋值语句
基本格式:变量=表达式,功能是将右边表达式的值赋给左边的变量
a=b=c=1 #数值1赋值给变量a,b,c
a,b,c=1, 2, 3 #数值1, 2, 3分别赋值给变量a,b,c
a,b=b,a #交换a,b两个变量的值
c+=a #等效于c=c+a
A=15 #等效于把数值15赋值给变量A
运算符 + — * ** / // %
功能 加 减 乘 幂运算 除 整除 取模(求余)
27
02 编程计算
5.
6.
根据一个数创建一个新的字符串
str()字符串
根据一个字符串或者浮点数创建一个新的整数
int() 整形
根据一个字符串或者整数创建一个新的小数
float() 浮点型
input() 输入函数
print() 输出函数
7.关系表达式的值有两个:真(True)/假(False),成立时为真,否则为假。
28
02 编程计算
8.分支语句
单分支 If 条件:
语句或语句组
双分支 If 条件:
语句或语句组A
else:
语句或语句组B
多分支 If 条件:
语句或语句组A
elif:
语句或语句组B
elif:
语句或语句组C
……
else:
语句或语句组n
29
1、省略冒号的错误
选择结构中常见的错误:
if 条件表达式:
语句块
①有冒号
②注意语句的缩进
③语句块可以包含多个语句
单分支流程图
if 条件表达式:
语句块1
else:
语句块2
①有冒号
②注意语句的缩进
③语句块可以包含多个语句
双分支流程图
多分支流程图
if (表达式1):
语句1
elif(表达式2):
语句2
......
elif(表达式N):
语句N
else:
语句N+1
①有冒号
②注意语句的缩进
③语句块可以包含多个语句
02 编程计算
a=input("请输入数字a:")
b=input("请输入数字b:")
if a>b:
print("最大的数是:",a)
else:
print("最大的数是:",b)
33
02 编程计算
1.在Python中想要输出“Hello World”,用到的函数是( )
A.print() B.input () C. Hello World() D.math ()
2.在Python中定义变量i=15,将i以浮点数形式输出用到的语句是( )
A int (i) B.bin (i) C.float (i) D.str(i)
3.在Python中运行如下程序,运行结果是( )
a=11
b=3**3
a <b
A. true B. false C.True D.False
A
C
C
34
02 编程计算
4.表达式int(3. 88)在Python中的运行结果是( )
A.3 B. 3. 8 C. 3. 88 D. 4
5.如下语句在Python中运行后的结果是( )
n=5
m=n
n='abc'
print(m)
A.5 B.n C.m D.abc
A
A
35
6.如下Python程序段
x = 5 < 3
print( x)
程序的运行后,显示的结果是( )
A.False B.True
C.0 D.-1
7.如下所示的python程序代码运行后,输出结果是( )
a=5
b=10
if a>b:
max=a
else:
max=b
Print(max)
A.0 B.5 C.10 D.15
A
D
8.某小区开通了刷脸进门方式:其算法中验证对象是否正确的代码如下所示,则以下流程图与内容匹配的是( )
刷脸结果:识别为1,否则为其他
if (face==1):
print("面部识别成功,门已开")
else:
print("面部识别错误,无法开门")
A.
B.
C.
D.
B
9.人们可通过报纸,电视、手机APP等方式获取天气预报信息。气象中心接收气象卫星和遍布全国的观测站发送的原始数据,对常规天气,灾害性天气等进行预测。某天气预报APP以可视化的方式呈现天气状况,并提示“您所在街道25分钟后小雨,50分钟后雨停”等信息。用Python算法控制结构描述“您所在街道25分钟后小雨,50分钟后雨停”,设t为距离天气预报发布时间的间隔(单位:分钟),下列选项正确的是( )
A. B.
C. D.
A
10.下列变量的命名遵循的规则,不正确的是( )
A.可以用数字开头B.区分大小写C.可以用下划线开头D.不能使用保留字
11.在 Python程序设计语言中,if语句属于( )
A.顺序结构 B.分支结构 C.循环结构 D.流程结构
12.Python中,分支语句使用的关键字是( )
A.if B.while C.for D.def
13.在 Python程序设计语言中,if语句属于( )
A.顺序结构 B.分支结构 C.循环结构 D.流程结构
A
B
A
B
14.身体质量指数(简称BMI)是国际上常用的衡量人体胖瘦程度以及是否健康的一个指标,BMI的计算公式是用体重除以人体身高的平方(国际单位kg/m²)。小智同学在网上查阅到BMI值低于18.5,属于低体重;在18.5-24(含18.5和24)之间属于正常;高于24属于超重。小智依据该标准,使用Python语言编写了一个评定体重指数等级程序,输入体重和身高,输出体重指数等级。他在编写程序时遇到了一些问题,请你帮助他修改程序。
程序正确运行界面如图所示:
打开“体重指数等级.py”文件,完成以下操作并保存文件。(共10分)
(1) 在代码中,将“bmi=【?】/h*2”行【?】处更换为正确代码;(4分)
(2) 在代码中,修改“elif bmi>=24:”行1处错误;(3分)
(3) 在代码中,修改“else”行1处错误。(3分)
w = float(input("请输入你的体重「千克」:"))
h = float(input("请输入你的身高「米」:"))
bmi =【?】/ (h ** 2) #将【?】删除,更换成正确代码
if bmi < 18.5:
print("你的体重指数等级是:低体重")
elif bmi > =24: #此行有一处错误,请修改
print("你的体重指数等级是:超重")
else #此行有一处错误,请修改
print("你的体重指数等级是:正常")
15、小智每天乘坐电梯,他研究了电梯的调度规则。如当前电梯停在第 10 层,此时第6层和第20层同时有人按下电梯,电梯总是选择离它近的楼层,于是先服务第6层的人,再服务第20层的人;如果需要服务楼层与当前电梯所在楼层距离相同,优先服务较高楼层的人。小智使用 Python 语言编写了一个模拟电梯调度程序,输入3个数,第1个数表示电梯当前所停的楼层,第2个数和第3个数表示同时需要使用电梯的楼层,输出优先服务的楼层。他在编写程序时遇到了一些问题,请你帮助他修改程序。
程序正确运行界面如图所示:
(说明:函数 abs(x) 的功能是返回 x 的绝对值,如abs(-3)的结果为3。)
单击“开始作答”按钮,完成以下操作并保存文件。(共10分)
(1) 在代码中,修改 “n2 = abs(f1 - f2)” 行1处错误;(3分)
(2) 在代码中,将 “if n1 [?] n2:” 行 [?] 处更换为正确代码;(4分)
(3) 在代码中,修改 “else” 行1处错误。(3分)
f1 = int(input('当前电梯所在楼层:'))
f2 = int(input('要服务楼层:'))
f3 = int(input('需要服务楼层:'))
n1 = abs(f1 - f2)
n2 = abs(f1 - f2) #此行有一处错误,请修改
if n1 【?】n2 or (n1 == n2 and f3 > f2): #将【?】删除,更换成正确代码
print('优先服务楼层为:', f3)
else #此行有一处错误,请修改
print('优先服务楼层为:', f2)
PART TWO
第二单元编程计算
2.3周而复始的循环
44
循环
1.概念:计算机程序中某些代码的反复执行
2.分类:
计数循环:重复一定次数(for)
条件循环:重复到某种情况结束
(while)
45
1、计数循环
概念:循环重复次数一定时,我们通常称为计数循环
基本格式:
for 循环变量 in 列表: 语句或语句组
循环体
循环
控制条件
①有冒号
②相对关键词for有缩进(Tab键/四个空格)
③循环体可以包含多个语句
列 表 list
1.列表可以包含多个数据元素,它是一个有序的集合。
2.创建列表,放在方括号内,各元素用逗号隔开。
a=["石榴" , 1 , "香蕉" , "橙子" , "梨子"]
3.列表可以存储混合类型的数据
4.列表索引号从0开始
a[ ] a[ ] a[ ] a[ ] a[ ]
0 1 2 3 4
列表
方法 描述 结果
list.append(“time”) 在列表的末尾添加一个元素 list=[“python”,23,”香蕉”,23,“苹果”,“time”]
del list[0] 删除列表中的指定元素 list=[23, '香蕉', 23, '苹果', 'time']
list.count(23) 返回具有指定值的元素数量 2
len(list) 返回列表的长度 5
list.index(“time”) 返回具有指定值的第一个元素的索引 4
list.insert(2,10) 在指定位置添加元素 list=[23, '香蕉', 10, 23, '苹果', 'time']
list.pop(0) 删除指定位置的元素 23
list.remove(“香蕉”) 删除具有指定值的项目 list=[10, 23, '苹果', 'time']
list.reverse() 颠倒列表的顺序 list=['time', '苹果', 23, 10]
list.sort() 对列表进行排序(list=[1,3,2,8,5]) list=[1,2,3,5,8]
列表基本操作:list=[“python”,23,”香蕉”,23,“苹果”]
48
计数循环——列表
for 循环变量 in 列表: 语句或语句组
列表的几种表达方式:
(1)直接罗列
(2)先定义后使用
(3)使用range()函数
(1)直接罗列
(2)先定义后使用
如果想要输出1-100的数字呢?
range()函数
range()函数:生成某个范围内的数字序列
格式:range(start , stop , step)
start:初值,可以省略,默认为0;
stop: 终值,但不包括该值,不能省略;
step:步长,可以省略,默认为1。
例如:range(5)等价于range(0,5)
例如:range(0,5)是[0,1,2,3,4],没有5
例如:range(0,5)等价于 range(0,5,1)
题目:
range(10)
range(1, 11)
range(0, 30, 5)
range(0, 10, 3)
range(0, -10, -1)
A=[1,2,3,4,5]
for i in range(5):
print(A[i])
for i in range(101)
print(i)
列表
练习巩固:
1.下列选项中,( )是列表
A.( 1 ,2,3,4) B. range(1,5) C. range(10) D.["苹果",3,"猕猴桃"]
2.创建一个List列表,正确的是( )
List[1,2,3] B. List=[1,2,3] C. List( 1,2,3) D. List=(1,2,3)
3.列表LS共包含10个元素,LS索引的取值范围是( )
A.( 0,10) B.[0,10] C.( 1 ,10] D.[0,9]
51
列表
4.下面代码的执行结果是( )
object=['石榴',1,'香蕉','橙子','梨子']
object. append('猕猴桃')
print (object)
A.['石榴',1,'香蕉','橙子','梨子’] B.['石榴',1,'香蕉','橙子','梨子','猕猴桃’]
C.['猕猴桃','石榴',1,'香蕉','橙子','梨子’] D.[1,'香蕉','橙子','梨子’]
5.下面代码的执行结果是( )
object=['石榴',1,'香蕉','橙子','梨子']
object[0]='苹果'
print (object)
A.['石榴',1,'香蕉','橙子','梨子’] B.['苹果',1,'香蕉','橙子','梨子']
C.['梨子',1,'香蕉','橙子','苹果’] D.[1,'香蕉','橙子','梨子']
52
计数循环
例:for i in range(1,6):
print (i)
循环过程
第1次循环:i取列表中1,执行print(i),输出1
第2次循环:i取列表中2,执行print(i),输出2
第4次循环:i取列表中4,执行print(i),输出4
第3次循环:i取列表中3,执行print(i),输出3
第5次循环:i取列表中5,执行print(i),输出5
循环体执行循环的次数
列表中元素的个数
取决于
例:
sum=1
for i in range(1,8,2):
sum=sum*i
计数循环
循环过程
第1次循环:i取列表中1,执行sum=sum*i,输出1*1=1
第2次循环:i取列表中3,执行sum=sum*i,输出1*3=3
第4次循环:i取列表中7,执行sum=sum*i,输出15*7=105
第3次循环:i取列表中5,执行sum=sum*i,输出3*5=15
range(1,8,2)
[1,3,5,7]
求1+2+3+……+100:
_____
for i in ______________
_______
print(s)
s=0
range(1,101) :
s=s+i
巩固练习
那求1*2*3*……*100呢?
开始
结束
s=s+i
N
s=0,i=1
Y
i=i+1
i<=100
输出s
初始值
初始值s=1
循环体s = s*i
循环体
s=0
+1
+2
+...
+100
累加求和
02 计数循环:range()
实战演练:下列程序的输出结果是?
1.for i in range(0,10,2):
print(i)
2.sum=1
for i in range(10,0,-1):
sum+=i
print(sum)
3.s=0
for i in range(1,10):
if i%2=1:
s+=i
else:
s-=i
print(s)
56
练习1
列表range(7,10)中元素的个数是( )
A.7 B.3 C.4 D.10
以下是列表的是( )
A.a=[1,2,3,4] B.range(1,5)
C.range(10) D.obj=[“猕猴桃”,3,“橙子”]
课堂检测
A、B、C、D
练习2
B
课堂检测
练习3
下列代码中循环体执行的次数是( )
for i in range(1,5):
print(i)
C
练习4
s=0
i=0 s=0+0=0
i=1 s=0+1=1
i=2 s=1+2=3
i=3 s=3+3=6
i=4 s=6+4=10
i=5 s=10+5=15
A.7 B.3 C.4 D.10
下面程序段运行后显示的结果是______。
s=0
for i in range(6):
s=s+i
print(s)
15
课堂检测
练习5
执行下列程序后的结果是_______。
s=0
for i in range(1,5):
i=i+2
s=s+i
print(s)
18
s=0
i=1 i=1+2=3 s=0+3=3
i=2 i=2+2=4 s=3+4=7
i=3 i=3+2=5 s=7+5=12
i=4 i=4+2=6 s=12+6=18
课堂检测
练习6
下面的程序段运行后的结果为( )
s=1
for i in range(1,6,2):
s=s+i
print(s)
A.15 B.10 C.12 D.9
B
课堂检测
练习7
运行以下Python程序段,输出结果是( )。
for i in range(2,12,2):
print(i,end=" ")
A.4 6 8 10 12
B.2 3 4 5 6
C.2 4 6 8 10
D.3 5 7 9 11
C
课堂检测
练习9
运行以下Python程序段,输出结果是( )。
def s(n):
m=1
for i in range(2,n+1):
m+=i
return m
total=s(5)
print(total)
A.5 B.10 C.24 D.15
D
课堂检测
练习10
利用下列Python程序打印"******",则横线处应该填( )。
for i in :
print("*",end="")
A.6
B.range(1,7)
C.range(1,6)
D.range(7)
A.5 B.10 C.24 D.15
B
2、条件循环
概念:条件循环一般用于循环次数未知的情况,只有当循环条件成立时,才执行循环体,使用while语句来创建。
基本格式:
while 关系表达式:
语句或语句组
循环体
循环
控制条件
①有冒号
②相对关键词for有缩进(Tab键/四个空格)
③循环体可以包含多个语句
条件循环
while 关系表达式:
语句或语句组
i=0
while i<30:
i=i+10
print(i)
只有当循环条件成立时,才执行循环体。
运行结果:
10
20
30
i=0
while i<30:
i=i+10
print(i)
运行结果:
30
例:下面这个循环输出0到100的自然数。
for i in range(0,101):
print (i)
i = 0
while i<101:
print(i)
i = i +1
练习时刻
练习时刻
求1+2+3+……+100:
s=0
i=1
while i<=100:
s=s+i
i=i+1
print(s)
for 循环
while循环
练习时刻
1.下面程序段运行后显示的结果为( )
i=1
while i<8:
i=i+2
s=2*i+3
print(s)
A.17
B.19
C.21
D.23
i=1
while i<8:
s=2*i+3
i=i+2
print(s)
C
A
2、while 循环条件表示式取值为( )时,执行下面的循环体语句。( )
A.0或1 B.True C.1 D.False
3、下面程序代码中n的值为( )
s=0
n=1
while s<15:
s=s+n
n=n+1
A.4 B.5 C.6 D.7
B
C
4.下面Python程序段的运行结果是( )
i=0
sum=0
while i<10:
if i%3==0
sum+=i
i+=1
print(“sum=”,sum)
A.sum=9
B.sum=10
C.sum=18
D.sum=19
C.sum=18
C
5、运行如下Python程序,结果为( )
c
A.1 B.3 C.6 D.18
6.行以下Python程序段后,变量b的值为( )。
a,b=6,2
while a!=b:
b=a//b
a=a-b
A.0
B.2
C.1
D.3
B
8、某 Python 程序如下:
n = int (input ())
sum = a = 3
res = 0
i=1
while i <= n:
res = res + sum
sum = sum * 10 + a
i = i + 1
print (res)
当输入n值为3时,程序输出结果是 。
PART TWO
第二单元编程计算
2.4可以复用的代码
74
函数
1、概念:将一组语句用一个名字封装起来
系统函数
函数库中的标准函数,是程序设计语言或操作系统提供给用户的一系列已经编好的程序。
print( ) input( )
max( ) min( )
自定义函数
用户自定义函数
用户自己编写的一段程序。
常见系统函数有以下几种:
数学运算类函数
数据转换类函数
字符串操作类函数
输入输出函数
文件操作类函数
其他函数
2、分类
函数
函数是一段具有特定功能的、可复用的语句组
类别 函数 举例
系统函数
(即函数库中的标准函数,是程序设计语言或操作系统提供给用户的一系列已经编制好的程序) 数学运算类 min():求最小值 max():求最大值
abs():求绝对值
数据转换类 int():转换成整型 float():转换成浮点型
str():转换成字符型 bool():转换成布尔型
字符串操作类 len():求字符串的长度
mid():字符串中间截取
输入输出类 input():输入函数 print():输出函数
文件操作类 open():打开文件
自定义函数 用户自己编写的一段程序
函数
3、函数定义与使用
def 函数名(参数):
#函数说明
语句或语句组
return 返回值
定义函数的基本格式:
向函数传递值,多个参数用逗号隔开
参 数
重复使用的代码
函 数 体
将表达式的值返回给调用者
返 回 体
函 数 名
同变量命名规则
函数
4、函数调用
采用函数名(参数)
的方式
因为出现def,所以跳过
因此,这一行才是主程序的第一行,从这里开始执行。
def s(a):
s=a*a
return s
area= s(13)
print(area)
程序自上而下逐行执行
这里调用函数,参数n变成4
函数
函 数
主程序
先执行主程序
只有调用函数的时候才能执行函数部分
系统函数即函数库中的标准函数,是程序设计语言或操作系统提供给用户的一系列已经编制好的程序。如print() ,input()都是系统函数。
参数是用来向函数传递值的,当有多个参数时各个参数由逗号分隔。函数执行完成后,由return语句将表达式值返回给调用者,结束函数。
79
函数
函数调用求长方形面积
def s( ):
#求正方形面积
s = a*b
return s
#调用s函数
area= s(4,6)
print(“该长方形的面积为:", area)
a,b
函数
函数调用求三角形面积
def s( ):
#求三角形面积
s=a*h/2
return(s)
#调用s函数
area= s(4,5)
print(“三角形的面积为:”,area)
a,h
函数
函数调用求n!
def factorial( ):
#求n!
s = 1
for i in range( , ):
s =
return s
#调用factorial函数
total =
print(total)
n
2
n+1
s*i
factorial(4)
利用函数编写程序,求8! +11! -13!的值。
def factorial(n):
#求n!
s = 1
for i in range(2, n+1):
s = s*i
return(s)
#调用factorial函数
total = + -
print(total)
factorial(8)
factorial(11)
factorial(13)
利用函数编写程序,求1! +2! +3! +……+100!的值。
def factorial(n):
#求n!
s=1
for i in range(2,n+1):
s=s*i
return(s)
#调用factorial函数
total=
for t in range( , ):
total=total+factorial( )
print(total)
0
1
101
t
1.在 Python 语言中,创建自定义函数的语法规范是( )。
A.del函数名(参数): B.def函数名(参数):
C.define函数名(参数): D.sub函数名(参数):
2.以下程序的输出的是( )
def mypow(x,y):
return x**y,x+y
a,b=mypow(3,4)
print(a,b)
A.81 7 B. 4 4 C.12 7
B
A
3.下列代码的输出结果是什么?( )
def sum(a,b):
c=a+b
return c
print(sum(4,5))
A.4 B.5 C.9 D.1
C
6.以下程序语句输出结果为:( )
def factorial(n):
#求n!
s=1
for i in range(2,n+1):
s=s*i
return s
#调用factorial函数
total=factorial(4)
print(total)
A、10 B、6 C、24 D、12
C
5.函数定义中,函数名、参数、返回值和函数体四个部分,哪些是必不可少的?( )
A、函数名、返回值 B、参数、返回值
C、函数体与返回值 D、函数名、函数体
D
第二单元练习1
有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。
6根火柴棒能摆出的一位数:
6 2 5 5 4 5 6 3 7 6
6根火柴棒能摆出的二位数:
6根火柴棒能摆出的三位数:
0,6,9
14,41,77
111
6根火柴棒摆出数字范围:0-111
算法分析
1.数字“1”需要的火柴棒最少,所以能够摆出的自然数最大是111。
2.计算0和111之间的所有数字,统计需要的火柴棒。
3.将恰好需要6根火柴棒的直接输出。
89
如何让计算机找出数字所有数位上的数字呢?
如果我们要得到 “206”个位上的“6”,哪种运算可以实现?除法、整除还是取模?
我们定义一个变量n来接受取模运算的结果,变量t来接受整除的结果:
n 1= 206 % 10 得6 t 1 = 206 // 10 得20
n 2= t 1 % 10 得0 t 2 = t 1 // 10 得2
206 % 10 =6
90
如何让计算机找出数字所有数位上的数字呢?
1.将这个数除以10求余,求得个位数;
2.将这个数除以十取整;
3.重复以上两步,直到这个数为0。
实现方法:
91
算法的流程图描述及实现(函数设计)
数字 0 1 2 3 4 5 6 7 8 9
需要的火柴棒 6 2 5 5 4 5 6 3 7 6
def match_num(num):
f=[6,2,5,5,4,5,6,3,7,6] # 0-9的数字分别需要多少根小棒
if num==0: # 火柴棒总数变量赋初值
total=f[0]
else:
total=0
while (num>0):
x=num % 10 # 取num除以10的余数,即num的个位数
total=total+f[x] # 所需火柴棒数累加
num=num//10 #num整除10,即去掉num的个位数
return total #返回需要多少根火柴棒数
自定义函数
Match_num(num)
List=[6,2,5,5,4,5,6,3,7,6]
S=0
num>0
i=num % 10
s=s+list[i]
num=num//10
输出s
结束
否
是
num==0
S=list[0]
是
否
92
代码实现
开始
sum=6
i=0
i<111
Match_num(i)==sum?
输出i
i = i+1
结束
否
否
是
是
sum=6
i =0
while(i<=111) :
if (Match_ num(i)==sum) :
print(i)
i=i+1
else:
i=i+1
93
def match_num(num):
f=[6,2,5,5,4,5,6,3,7,6] # 0-9的数字分别需要多少根小棒
if num==0: # 火柴棒总数变量赋初值
total=f[0]
else:
total=0
while (num>0):
x=num % 10 # 取num除以10的余数,即num的个位数
total=total+f[x] # 所需火柴棒数累加
num=num//10 #num整除10,即去掉num的个位数
return total #返回需要多少根火柴棒数
#以下为主程序
snum=6 # 6根火柴棒
print("你可以拼出这些数字:")
for i in range(112):
if match_num(i)==snum: #如果i需要的火柴棒数等于现有火柴棒数
print (i)
input("运行完毕,请按回车键退出...")
第二单元练习2
def shengxiao(year):
zodiac=["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"]
index=(year-1900)%12
return zodiac[___①___]
myyear=int(input("请输入出生年份,输入0结束:"))
while myyear != ___②___:
print("你的生肖是:", ___③___) # 输出结果
myyear = int(input("请输入出生年份,输入0结束:"))
输入年份,输出该年对应的生肖
请编写程序,实现输入一个农历年份(>=1900),输出该年对应的生肖,直到输入0结束。
def shengxiao(year):
#求生肖
zodiac=[“鼠”,“牛”,“虎”,“兔”,“龙”,“蛇”,“马”,“羊”,“猴”,“鸡”,“狗”,“猪”]
index=(year-1972)%12
return zodiac=[ index]
#以下为主程序
myyear=int(input(“请输入农历年份,输出0结束:”))
while myyear!=0
print(“生肖是:”,shengxiao(myyear))
myyear=int(input(“请输入农历年份,输入0结束:”))
模块
1. 利用random模块可以生产随机数,程序如下:
import random
num=random.randint(0,1) #产生一个[0,1]之间的随机整数
print(num)
模块
2. 利用time模块可以获取计算机时钟信息,包括日期和时间,也可以利用它进行延时
import time
print(time.time()) #时间戳,即1970纪元后经过的浮点秒数
time.sleep(2) #延时2秒
print(time.asctime()) #格式化显示时间
模块
3. 利用pdb模块可以调试程序,在适当位置放一个pdb.set_trace(),就可以设置一个断点,让程序暂停运行,进行pdb调试环境,用“p”查看变量,“c”继续运行,“q”结束调试,退出程序。
import pdb
s=0
for i in range(10):
s=s+i
pdb.set_trace()
$