高中信息技术 学考复习 第3章 算法的程序实现 课时12 函数与模块 课件(共36张PPT)

文档属性

名称 高中信息技术 学考复习 第3章 算法的程序实现 课时12 函数与模块 课件(共36张PPT)
格式 ppt
文件大小 1.9MB
资源类型 试卷
版本资源 通用版
科目 信息技术(信息科技)
更新时间 2024-02-21 14:27:14

图片预览

文档简介

(共36张PPT)
第3章
课时12 函数与模块
信息技术
课标梳理·微知著
教材重点 课标要求 学业质量水平
函数与模块 了解函数和模块的功能及其应用,能感知模块化编程的思想 2-2
教材研析·固基础
1
模块化程序设计
1.模块化程序设计思想:将问题分解成若干个子问题,用相对独立的程序段来针对性的解决各个子问题,提高程序设计的效率。
2.优点:对于一些常用的程序代码,以模块化的形式进行保存,需要时可重复调用。
3.实现方式:函数、模块等。
2
函数
1.定义:组织好的,可重复使用的,用来实现单一或相关联功能的代码段。
2.作用:能提高应用的模块性和代码的重复利用率。
3.分类
(1)内建函数:Python提供了许多内建函数,能实现许多功能,比如print()。
函数 描述
print(x) 输出x的值
input([prompt]) 获取用户输入
int(object) 将字符串和数字转换成整型
float(object) 将字符串和数字转换成实型
abs(x) 返回x的绝对值
help() 提供交互式帮助
len(seq) 返回序列的长度
str(x) 将x转换成字符串
chr(x) 返回x对应的字符
ord(x) 返回x对应的ASCII值
round(x[,n]) 对x进行四舍五入(如果给定n,就将数x转换为小数点后有n位的数)
max(s,[,args...]) 返回序列的最大值(如果给定多个参数,则返回给定参数中的最大值)
min(s,[,args...]) 返回序列的最小值(如果给定多个参数,则返回给定参数中的最小值)
①chr():编码转换为对应的字符
·参数:x可以是10进制也可以是16进制形式的数字(0x开头的为十六进
制数)。
·范例
>>> chr(25991)
'文'
>>> chr(65)
'A'
>>> print(chr(48),chr(65),\
chr(97)) #十进制为参数
0 A a
>>> print(chr(0x30),chr(0x41),\chr(0x61)) #十六进制为参数
0 A a
②ord():获取字符的整数表示
·参数:x为字符(ASCII码或Unicode)。
·返回值:x对应的十进制整数。
·范例
>>> print(ord('0'),ord('A'),ord('a'))
48 65 97
>>> print(ord('你'))
20320
(2)自定义函数:实际程序设计中,可根据实际情况自己构造函数实现内建函数无法提供支持的功能,以实现常用代码的模块化。
4.自定义函数语法
def 函数名(参数集合):
<函数体>
return [函数值表达式]
(1)关键词def标识自定义函数的开始。
(2)自定义函数命名规则:同变量名命名规则。
(3)形参必须放在圆括号()内,多个形参之间用逗号分隔。
(4)return [函数值表达式] 结束函数,选择性地返回一个值给调用方[不带表达式的 return 相当于返回 None]。
(5)自定义函数调用:函数名(实参)。
(6)注意点:自定义函数代码要放在主程序调用函数的代码之前。
(7)范例:输入2数,输出较大数。
框中为自定义函数compare,最后1行代码中调用了该函数。
典例1 输出当前序列中所有素数的Python程序如下,请在划线处填上合适的代码。
#以下代码用于自定义一个判断参数x是否为素数的函数。
①________sspd(x):
if x>1:
 cs=2
 flag=False
Def
 while cs <=x - 1:
if x % cs==0:
flag=True
break
cs=cs + 1
 ②____________
b=int(input('请输入一个正整数作为\序列起点:'))
e=int(input('请输入一个正整数作为\序列终点:'))
ans=''
for i in range(b,e+1,1):
if ③________________
 ans=ans+''+str(i)
print(b,'~',e,'中的素数有:',ans)
return flag
sspd(i)==False:
解析 ①自定义函数以def起始。②根据自定义函数的语法判断此处应为return [函数值表达式];根据题意和代码分析可知,if语句判断前flag为False,满足if后条件 “x % cs==0”时,改变 flag的值为True并跳出循环。 flag的值为True判断结果非素数,值为False是素数。③有自定义函数,则主程序中一定有函数名调用的语句,且if后该条件满足,i连接到结果串,所以满足该条件一定为素数 调用函数sspd()对i判断的结果应为 False。
3
模块
1.描述:用Python解释器来编程时,若从 Python 解释器退出再进入,则原来定义的所有的方法、函数和变量等内容就都消失了。可以把某用户定义的所有函数和变量等内容存放在一个文件中,这个文件被称为模块,其后缀名是.py。模块可以被别的程序引入,在别的程序中也能使用该模块中的函数等功能。这也是使用Python标准库的方法。
2.功能:Python模块补充了许多功能强大的函数。
3.分类
(1)Python内置模块(可引入后直接使用)
(2)第三方模块(经过安装才能引入使用)
4.常用Python内置模块
(1)math:数学常用常数和函数
名称 含义
math.e 自然常数e
math.pi 圆周率π
math.ceil(x) 对x向上取整比如x=1.2,返回2
math.floor(x) 对x向下取整比如x=1.2,返回1
math.pow(x,y) 指数运算,得到x的y次方
math.log(x) 对数运算,默认基底为e
math.sin(x) 正弦函数
math.cos(x) 余弦函数
math.tan(x) 正切函数
math.degrees(x) 弧度转换成角度
math.radians(x) 角度转换成弧度
典例2 写出Python Shell中运行语句“import math”后,测试下列表达式,请写出运行结果。
表达式 结果
>>>math.ceil(2.1)
>>>math.ceil(2.7)
>>>math.floor(2.1)
>>>math.floor(2.7)
>>>math.pow(2,5)
>>>math.sqrt(81)
表达式 结果
>>>math.ceil(2.1) 3
>>>math.ceil(2.7) 3
>>>math.floor(2.1) 2
>>>math.floor(2.7) 2
>>>math.pow(2,5) 32.0
>>>math.sqrt(81) 9.0
(2)random:生成随机数
名称 含义
random.random() 随机生成一个[0,1)范围内的实数
random.uniform(a,b) 随机生成一个[a,b]范围内的实数
random.randint(a,b) 随机生成一个[a,b]范围内的整数
random.choice(seq) 从序列的元素中随机挑选一个元素
比如random.choice(range(10)),从0到9中随机挑选一个整数
random.sample(seq,k) 从序列中随机挑选k个元素
random.shuffle(seq) 将序列的所有元素随机排序
(3)Image:PIL库中重要模块,用以完成图像的常用操作。
①引入格式
from PIL import Image
②常用功能
名称 含义
im=Image.open(file) im指向从文件加载的图像
im.show() 显示图像
print(im) 输出图像具体信息
im.rotate(45) 生成旋转角度后的新图片
im.save(outfile) 当前图片存储为新文件 outfile
im.format 图像格式
im.size 图像尺寸
im.mode 模式:图像的像素格式。常见的“L”(luminance)表示灰度图像,“RGB”表示真彩色图像,“CMYK”表示出版图像
im.convert(mode) 将当前图像转换为其他模式(如“L”),并且返回新的图像
im.seek(frame number) 在给定文件的图像序列中查找指定的帧。默认第0帧
(4)turtle:一个简单的绘图工具,叫做海龟绘图(Turtle Graphics)。
5.其他常用模块简介
(1)numpy:实现科学计算
(2)matplotlib:数据可视化
6.引入第三方模块
(1)引入模块
①格式:import 模块名
②作用:往当前程序中引入模块
③范例
<1>建立模块文件(与引用该模块的程序位于同一文件夹下,则可省略引入路径的说明)
<2>引入模块
<3>调用:此方法引入模块后,调用函数时需在函数名前指明函数所属的模块名,否则会报“函数未定义”的错误。
(2)引入模块下指定部分内容(以函数为例)
①格式:from 模块名 import 函数名(多个函数之间用逗号分隔)
②作用:往当前程序中引入模块中指定部分内容(函数)。当前程序调用引入的指定函数时,函数名前不用指定其所属的模块
③范例
未指定部分函数没有引入到当前程序,引用无效。如下图中当前程序只指定引用了“module_test.py”文件相应模块中的函数jia()和函数jian(),函数cheng()没有被指定引入,所以引用无效,报错“函数未定义”。
典例3 编写Python程序,实现如下功能:输入半径,输出球体积(要求四舍五入保留2位小数),程序代码如下。在划线处填上合适的代码。
#下行语句导入math模块中的圆周率
①________________________
r=float(input('请输入半径:'))
②__________________________________
print('球体积为:',V)
from math import pi
V=round(4 * pi * r * * 3/3,2)
解析 ①导入模块中的部分内容,使用from... import...语句。②从print()函数的参数中可知体积由变量V指向;题意四舍五入保留2位小数 round函数;球体积公式中的圆周率使用math模块中的常数pi,因为使用from... import...语句导入math中的常数pi 直接用pi表示圆周率,pi前不跟模块名math。
典例4 编写Python程序,实现如下功能:生成一个三位随机整数,输出其逆序数,程序代码和界面图如下。在划线处填上合适的代码。
import random
n=①________________________
print('随机数'+②_________+'的逆序\数为:',n%10,n//10%10,n//100)
random.randint(100,999)
str(n)
解析 ①程序首行引入random模块而非模块下具体的内容,所以引用该模块下的函数时,需要在函数名前加上模块名作为前缀,说明函数的从属。生成随机三位正整数 引用randint(a,b)函数,范围是100~999。②根据界面图上的输出结果可知划线处应填入此次随机生成的三位正整数n,由于n参与“+”字符串链接运算,需要先用str()函数将n转换为字符串型。
典例5 编写Python程序,实现如下功能:打开指定位置('D:\狗.jpg')的图片,并输出其格式、尺寸和模式信息,程序代码和界面图如下。在划线处填上合适的代码。
①__________________________#引入Image模块
#下行语句使变量im指向从文件加载的图片
im=②________________________
im.show()#打开窗口显示图像
print(③________________________________)
from PIL import Image
Image.open('D:\狗.jpg')
im.format,im.size,im.mode
解析 结合程序界图和题目描述可知print()函数需要输出图像对象im的3个属性值。
典例6 (2022杭州八县市联考)有如下Python程序段:
import random
a=[1,0,0,0,0]
for i in range(1,5):
a[i]=random.randint(1,9)
if a[i]%2==1:
 a[i]=a[i]+a[i-1]
elif i%2==0:
 a[i]=a[i]//2
执行程序后,a列表各元素不可能的是( )
A.1,4,2,4,15 B.1,8,3,2,5
C.1,2,11,8,2 D.1,8,15,6,4
A
解析 radom.randint(1,9)随机产生1~9之间的整数,第一种情况:产生的是奇数,则当前元素值为该奇数与前一个元素值之和;情况二:产生的是偶数并且i为偶数,则当前元素值为该偶数与2的整除值,该值最大值为4;情况三:产生的是偶数,但i为奇数,则当前元素值可为2,4,6,8。选项A中第5个元素的值为14,比前一个元素值大,应由a[i]=a[i]+a[i-1]产生,前一个元素值为4,则推算出随机生成数应为11,但randint(1,9)随机产生1~9之间的整数,故选项A错误。选项B中随机生成的整数可为7,6,2,3,选项C中随机生成的整数可为1,9,8,4,选项D中随机生成的整数应为7,7,6,8。
典例7 以下关于模块说法错误的是( )
A.一个test.py就是一个模块
B.任何一个普通的t.py文件可以作为模块导入
C.模块文件的扩展名不一定是.py
D.运行时会从制定的目录搜索导入的模块,如果没有,会报错异常
解析 本题主要考查Python模块。一个test.py就是一个模块;任何一个普通的t.py文件可以作为模块导入;模块文件的扩展名一定是.py;运行时会从制定的目录搜索导入的模块,如果没有,会报错异常,故本题选C选项。
C
同课章节目录