七、Python函数与模块(课件+学案)2025-2026学年高中信息技术 必修1 数据与计算

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

七、Python函数与模块(课件+学案)2025-2026学年高中信息技术 必修1 数据与计算

资源简介

七、 Python函数与模块
程序模块化就是将问题分解为若干个子问题,并用相对独立的程序段针对性地解决各个子问题,提高程序设计的效率。
1. 函数的构造及应用
(1)函数是组织好的、可重复使用的、用来实现特定功能的代码段,通过函数名来表示和调用。使用函数主要有两个目的:降低编程难度和增加代码复用。
(2)Python语言通过保留字def定义函数,语法格式如下:
def函数名(参数集合):
  <函数体>
  [return函数值]
(3)函数定义的注意事项
①函数代码块以保留字def开头,后接函数标识符名称和圆括号。函数名的命名规则和变量名一样。
②参数列表是程序调用该函数时传递给它的值,可以有零个、一个或多个参数,当传递多个参数时,各参数用逗号分隔。
③函数体以冒号起始并且缩进,函数体是函数每次被调用时执行的代码,由一行或多行语句组成。
④如果函数需要返回值,使用保留字return和返回值列表选择性地返回一个值给调用方,不带return的表达式相当于返回None,函数体结束后会将控制权返回给调用者。
⑤定义后的函数不能直接运行,需要经过调用才能运行。调用函数的基本方法如下:函数名(实际参数集合)。
⑥每次调用函数可以提供不同的参数作为输入,以实现对不同数据的处理;执行完函数后,可以返回相应的处理结果。
2. 函数参数传递
(1)定义函数时,圆括号内是使用逗号分隔的形式参数(形参)列表。调用函数时向其传递实际参数(实参)。形参的类型由对应的实参确定,Python解释器会根据实参的值自动推断并动态确定形参的类型。
(2)当传递的参数是不可更改对象,如数字和字符串,在函数内部修改形参的值对实参没有影响;当传递的参数是可更改对象,如列表、字典,在函数内部修改形参的值,实参也会发生相应变化。
3. 函数参数类型
(1)必需参数:又称位置参数,是最常用的参数类型,它要求调用函数时,实参和形参的数量必须一致,顺序也要完全相同。
(2)关键字参数:主要指调用函数时的参数传递方式,与函数定义无关。通过关键字参数名传递值,实参顺序可以和形参顺序不一致,避免了用户需要牢记参数位置和顺序的麻烦,使得函数的调用和参数传递更加灵活方便。
(3)默认参数:指定义函数时为形参设置默认值,调用函数时,若没有传递实参,则会使用默认参数,当然也可以通过传递实参来替换其默认值。注意:默认参数要放在必需参数后面,否则Python解释器会报错。
4. 变量的作用域
(1)变量起作用的代码范围称为变量的作用域,不同作用域内同名变量之间互不影响。
(2)局部变量和全局变量
①局部变量:指在函数内部定义的变量,仅在函数内部有效,当函数退出时局部变量将不再存在。
②全局变量:指在函数之外定义的变量,它在程序执行的全过程中均有效。可以在函数内部直接读取全局变量的值,但若要修改该全局变量的值,则需要提前使用保留字global进行声明,否则会被当作局部变量进行处理。
5. 模块的导入及应用
(1)Python内置对象可以直接使用,而内置模块和第三方模块需要导入后才能使用其中的对象。其中,第三方模块还需要先正确安装才能导入和使用。
(2)使用关键字import导入模块或模块中的对象。使用语句“import模块名[as别名]”可以导入指定的模块,并给模块设置一个别名。使用时在对象之前加上模块名(或别名)作为前缀,以“模块名.对象名”的方式访问对象。
(3)若只用到模块中的某几个对象,则无须导入整个模块,可以使用“from模块名import对象名[as别名]”语句导入需要使用的对象。使用时可以直接操作导入的对象,不需要使用模块名作为前缀。
比如在Python Shell中导入math模块,并调用该模块中的sqrt函数,可采用以下两种方法。
方法 示例
使用import语句导入模块 >>>import math >>>math.sqrt(9) 3.0
使用from-import语句导入模块 >>>from math import sqrt >>>sqrt(9) 3.0
6. 常用模块及其作用
(1)math模块:math模块是Python提供的内置数学类函数库,不支持复数类型。
(2)random模块:random模块用来生成随机数,常用函数如下。
名称 含义 示例
random.random() 随机生成一个[0, 1) 范围内的实数 >>>random.random() 0.8495449896354876
random.uniform(a, b) 随机生成一个[a, b]范围内的实数 >>>random.uniform(10, 100) 13.096321648808136
random.randint(a, b) 随机生成一个[a, b]范围内的整数 >>>random.randint(8,16) 13
random.choice(seq) 从序列的元素中随机挑选一个元素,比如random.choice(range(10))表示从0到9的整数中随机挑选一个整数 >>>random.choice(range(10)) 1 >>>random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9]) 8
random.sample(seq, k) 从序列中随机挑选k个元素 >>>s=[1, 2, 3, 4, 5, 6, 7, 8, 9] >>>random.sample(s, 3) [9, 8, 3]
random.shuffle(seq) 将序列的所有元素随机排序 >>>s=[1, 2, 3, 4, 5, 6, 7, 8, 9] >>>random.shuffle(s) >>>print(s) [3, 4, 7, 5, 9, 2, 1, 6, 8]
(3)Image模块:可以完成对图像的一些常用操作,比如获取图像尺寸和像素颜色、旋转图像或改变图像格式等。
【例1】 有如下Python 程序段:
def f(x):
  return x[::-1]
s ="CPU"
while len(s) > 0:
  print(f(s))
  s = s[:len(s) - 1]
执行该程序段后,输出的结果为( A )
A. UPC
PC
C
B. CPU
PU
U
C. UPC
D. U
【解析】 本题考查自定义函数。由循环和代码s = s[:len(s) - 1]可知,字符串s的长度一直在减少,直到为空,且打印出的字符串是逆序的,A正确。
【例2】 有如下Python程序代码:
def prt(n):
  for i in range(n):
    print( * ,end="")
  print( )
n=int(input("输入打印字符(*)行数:"))
for i in range(1,n+1):
  prt(2*i-1)
运行上面的程序,输入整数n的值为3,则输出结果正确的是( D )
A. *
***
*****
*******
B. ****
***
**
*
C.*****
***
*
D.*
***
*****
【解析】 函数prt(k)的功能是输出一行,共计k个字符“*”。
【例3】 某航空公司对于行李托运费的计费规则如下:10千克内免费,超过10千克的部分按每千克单价为机票价格的1.2%收取托运费。创建一个函数,要求输入机票价格和行李质量,计算需要支付的托运费。请在横线上填入合适的代码:① (w-10) *p*0. 012 ,② cost(price,weight) 。
def cost(p, w) :
  if w<=10:
    money=0
  else:
    money=  ①  
  return money
price=int(input(“输入机票价格:”))
weight=int(input(“输入行李质量(kg) :”))
print(“需要支付托运费:”,  ②  )
【解析】 函数的定义部分:超过10千克的部分开始计算托运费,即(w-10)*p*0. 012。函数的调用即将实参price和weight传入函数中。
1. 下列关于函数的定义与编写的说法,错误的是( B )
A. 函数是代码复用的一种方式
B. 在Python中,使用保留字define定义函数
C. 定义函数时,即使函数形参的数量为0,也要保留圆括号
D. 函数中可以没有return语句,默认返回一个None对象
【解析】 函数是组织好的、可重复使用的、用来实现特定功能的代码段,使用函数的目的之一就是增加代码复用;Python通过保留字def定义函数;无论是定义还是调用函数,不管是否有参数,都需要保留圆括号来表明这是一个函数;如果需要返回值,使用保留字return和返回值列表;若没有return语句,则默认返回一个None对象。
2. 有如下Python程序段:
def f(a,b)∶
  if a>b∶
    return a-b
  return a+b
x1=int(input("请输入第一个数"))
x2=int(input("请输入第二个数"))
print(f(f(x1,x2),f(x2,x1)))
当用键盘输入12和13后,程序输出的结果是( C )
A. 重复调用出错 B. 50
C. 24 D. 2
【解析】 本题考查自定义函数和递归算法。将实参12,13分别代入自定义函数f()中,可以得到结果24,C正确。
3. 关于Python代码,下列说法中正确的是( D )
animals=[ cat , dog , monkey ]
print( rose in animals)
A. 变量animals的数据类型是字典
B. len(animals)的运算结果为2
C. animals 的第二个元素是 monkey
D. 上述Python代码的输出结果是False
【解析】 本题主要考查Python程序的执行。变量animals的数据类型是列表;len(animals)的运算结果为3;animals 的第二个元素是 dog ;上述Python 代码的输出结果是False。
4. 某Python程序如下:
def f(a, b):
  result=a*b
  s=a+b
  return result
a=int(input(“a=”))
b=10
s=f(a, b)
print(s)
程序运行后,输入a的值为5,输出的结果为( D )
A. 程序报错 B. s
C. 15 D. 50
【解析】 输入数据后,将a = 5,b = 10代入定义的函数f中,得到result = 5*
10= 50,s = 5+10 = 15,然后函数返回 result的值,所以最后输出s的值,即函数中返回的变量result的值为50。
5. 下列程序段的功能是( D )
a=int(input("请输入一个正整数"))
b=int(input("请输入一个正整数"))
while b !=0:
  r=a % b
  a=b
  b=r
print(a)
A. 输出a-b的值
B. 输出a除以b的余数
C. 输出a,b的最小公倍数
D. 输出a,b的最大公约数
【解析】 本题主要考查Python程序的应用。分析程序,可知该程序实现输出a,b的最大公约数,如代入a=12,b=3可验证结果。
6. 有如下Python程序代码:
def MMax(a,b):
  if a>b:
    return a
  else:
    return b
下列函数调用的语句中,正确的是( A )
A. print(MMax(3,9))
B. print(MMax( a ,65))
C. k=MMax(31,23,54)
D. k=MMax([31,23])
【解析】 选项B,在Python中,变量是动态的,因此函数的参数可以接受不同类型的变量。但是,在函数体内部需要对两个变量进行大小比较,而字符串不可以和整型直接进行大小比较,但可以和字符串进行比较。比如这样调用是可以的:print(MMax('a','d')),所以B错误。
7. 有如下程序段:
d=0
i=1
while i <=4 :
  b=int(input("b="))
  d=2* d + b
  i=i + 1
print(d)
依次输入 1 0 1 1 后,输出的结果是( C )
A. 13 B. 1011
C. 11 D. 0
【解析】 本题主要考查Python程序的执行。分析程序,可知该程序实现将输入的二进制数转换为十进制数,二进制数1011通过“按权展开、逐项相加”的方法转换为十进制数是11。
8. 编写程序,实现输入圆的半径r, 计算并输出该圆的面积和周长。实现上述功能的Python程序如下,圆的面积利用自定义函数O(r) 求得,请在横线上填入合适的代码:① math. pi*r**2 ,② O(r) 。
import math
def O(r) :
  #计算圆的面积
  mj=  ①  
  return mj
r=float(input("请输入半径r:")
zc=2*math. pi*r
#调用函数
s=  ②  
print("圆的周长为:",zc, "面积为:",s)
【解析】 题目利用自定义函数O(r) 求得圆的面积,①处圆的面积存储在变量mj中,因此①处代码为math. pi*r**2;②处为调用函数,因此②处代码为O(r)。(共25张PPT)
七、 Python函数与模块
信息技术 必修1 数据与计算
算法的程序实现
第三章
知识过关
程序模块化就是将问题分解为若干个子问题,并用相对独立的程序段针对性地解决各个子问题,提高程序设计的效率。
1. 函数的构造及应用
(1)函数是组织好的、可重复使用的、用来实现特定功能的代码段,通过函数名来表示和调用。使用函数主要有两个目的:降低编程难度和增加代码复用。
(2)Python语言通过保留字def定义函数,语法格式如下:
def函数名(参数集合):
  <函数体>
  [return函数值]
(3)函数定义的注意事项
①函数代码块以保留字def开头,后接函数标识符名称和圆括号。函数名的命名规则和变量名
一样。
②参数列表是程序调用该函数时传递给它的值,可以有零个、一个或多个参数,当传递多个参数时,各参数用逗号分隔。
③函数体以冒号起始并且缩进,函数体是函数每次被调用时执行的代码,由一行或多行语句组成。
④如果函数需要返回值,使用保留字return和返回值列表选择性地返回一个值给调用方,不带return的表达式相当于返回None, 函数体结束后会将控制权返回给调用者。
⑤定义后的函数不能直接运行,需要经过调用才能运行。调用函数的基本方法如下:函数名(实际参数集合)。
⑥每次调用函数可以提供不同的参数作为输入,以实现对不同数据的处理;执行完函数后,可以返回相应的处理结果。
2. 函数参数传递
(1)定义函数时,圆括号内是使用逗号分隔的形式参数(形参)列表。调用函数时向其传递实际参数(实参)。形参的类型由对应的实参确定,Python解释器会根据实参的值自动推断并动态确定形参的类型。
(2)当传递的参数是不可更改对象,如数字和字符串,在函数内部修改形参的值对实参没有影响;当传递的参数是可更改对象,如列表、字典,在函数内部修改形参的值,实参也会发生相应变化。
3. 函数参数类型
(1)必需参数:又称位置参数,是最常用的参数类型,它要求调用函数时,实参和形参的数量必须一致,顺序也要完全相同。
(2)关键字参数:主要指调用函数时的参数传递方式,与函数定义无关。通过关键字参数名传递值,实参顺序可以和形参顺序不一致,避免了用户需要牢记参数位置和顺序的麻烦,使得函数的调用和参数传递更加灵活方便。
(3)默认参数:指定义函数时为形参设置默认值,调用函数时,若没有传递实参,则会使用默认参数,当然也可以通过传递实参来替换其默认值。注意:默认参数要放在必需参数后面,否则Python解释器会报错。
4. 变量的作用域
(1)变量起作用的代码范围称为变量的作用域,不同作用域内同名变量之间互不影响。
(2)局部变量和全局变量
①局部变量:指在函数内部定义的变量,仅在函数内部有效,当函数退出时局部变量将不再存在。
②全局变量:指在函数之外定义的变量,它在程序执行的全过程中均有效。可以在函数内部直接读取全局变量的值,但若要修改该全局变量的值,则需要提前使用保留字global进行声明,否则会被当作局部变量进行处理。
5. 模块的导入及应用
(1)Python内置对象可以直接使用,而内置模块和第三方模块需要导入后才能使用其中的对象。其中,第三方模块还需要先正确安装才能导入和使用。
(2)使用关键字import导入模块或模块中的对象。使用语句“import模块名[as别名]”可以导入指定的模块,并给模块设置一个别名。使用时在对象之前加上模块名(或别名)作为前缀,以“模块名.对象名”的方式访问对象。
(3)若只用到模块中的某几个对象,则无须导入整个模块,可以使用“from模块名import对象名[as别名]”语句导入需要使用的对象。使用时可以直接操作导入的对象,不需要使用模块名作为前缀。
比如在Python Shell中导入math模块,并调用该模块中的sqrt函数,可采用以下两种方法。
方法 示例
使用import语句导入模块 >>>import math
>>>math.sqrt(9)
3.0
使用from-import语句导入模块 >>>from math import sqrt
>>>sqrt(9)
3.0
6. 常用模块及其作用
(1)math模块:math模块是Python提供的内置数学类函数库,不支持复数类型。
(2)random模块:random模块用来生成随机数,常用函数如下。
名称 含义 示例
random.random() 随机生成一个[0, 1) 范围内的实数 >>>random.random()
0.8495449896354876
random.uniform(a, b) 随机生成一个[a, b]范围内的实数 >>>random.uniform(10, 100)
13.096321648808136
random.randint(a, b) 随机生成一个[a, b]范围内的整数 >>>random.randint(8,16)
13
名称 含义 示例
random.choice(seq) 从序列的元素中随机挑选一个元素,比如random.choice(range(10))表示从0到9的整数中随机挑选一个整数 >>>random.choice(range(10))
1
>>>random.choice([1, 2, 3, 4, 5, 6, 7, 8, 9])
8
random.sample(seq, k) 从序列中随机挑选k个元素 >>>s=[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>random.sample(s, 3)
[9, 8, 3]
random.shuffle(seq) 将序列的所有元素随机排序 >>>s=[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>random.shuffle(s)
>>>print(s)
[3, 4, 7, 5, 9, 2, 1, 6, 8]
(3)Image模块:可以完成对图像的一些常用操作,比如获取图像尺寸和像素颜色、旋转图像或改变图像格式等。
典例精选
【例1】 有如下Python 程序段:
def f(x):
  return x[::-1]
s ="CPU"
while len(s) > 0:
  print(f(s))
  s = s[:len(s) - 1]
执行该程序段后,输出的结果为(  )
A. UPC
PC
C
B. CPU
PU
U
A
C. UPC
D. U
【解析】 本题考查自定义函数。由循环和代码s = s[:len(s) - 1]可知,字符串s的长度一直在减少,直到为空,且打印出的字符串是逆序的,A正确。
【例2】 有如下Python程序代码:
def prt(n):
  for i in range(n):
    print( * ,end="")
  print( )
n=int(input("输入打印字符(*)行数:"))
for i in range(1,n+1):
  prt(2*i-1)
运行上面的程序,输入整数n的值为3,则输出结果正确的是(  )
A. *
***
*****
******* 
B. ****
***
**
*
C.*****
***
*
D.*
***
*****
D
【解析】 函数prt(k)的功能是输出一行,共计k个字符“*”。
【例3】 某航空公司对于行李托运费的计费规则如下:10千克内免费,超过10千克的部分按每千克单价为机票价格的1.2%收取托运费。创建一个函数,要求输入机票价格和行李质量,计算需要支付的托运费。请在横线上填入合适的代码:①__________________,②___________________。
def cost(p, w) :
  if w<=10:
    money=0
  else:
    money=  ①  
  return money
price=int(input(“输入机票价格:”))
weight=int(input(“输入行李质量(kg) :”))
print(“需要支付托运费:”,  ②  )
(w-10) *p*0. 012
cost(price,weight)
【解析】 函数的定义部分:超过10千克的部分开始计算托运费,即(w-10)*p*0. 012。函数的调用即将实参price和weight传入函数中。
自我检测
1. 下列关于函数的定义与编写的说法,错.误.的是(  )
A. 函数是代码复用的一种方式
B. 在Python中,使用保留字define定义函数
C. 定义函数时,即使函数形参的数量为0,也要保留圆括号
D. 函数中可以没有return语句,默认返回一个None对象
【解析】 函数是组织好的、可重复使用的、用来实现特定功能的代码段,使用函数的目的之一就是增加代码复用;Python通过保留字def定义函数;无论是定义还是调用函数,不管是否有参数,都需要保留圆括号来表明这是一个函数;如果需要返回值,使用保留字return和返回值列表;若没有return语句,则默认返回一个None对象。
B
2. 有如下Python程序段:
def f(a,b)∶
  if a>b∶
    return a-b
  return a+b
x1=int(input("请输入第一个数"))
x2=int(input("请输入第二个数"))
print(f(f(x1,x2),f(x2,x1)))
当用键盘输入12和13后,程序输出的结果是(  )
A. 重复调用出错 B. 50
C. 24 D. 2
【解析】 本题考查自定义函数和递归算法。将实参12,13分别代入自定义函数f()中,可以得到结果24,C正确。
C
3. 关于Python代码,下列说法中正确的是(  )
animals=[ cat , dog , monkey ]
print( rose in animals)
A. 变量animals的数据类型是字典 B. len(animals)的运算结果为2
C. animals 的第二个元素是 monkey D. 上述Python代码的输出结果是False
【解析】 本题主要考查Python程序的执行。变量animals的数据类型是列表;len(animals)的运算结果为3;animals 的第二个元素是 dog ;上述Python 代码的输出结果是False。
D
4. 某Python程序如下:
def f(a, b):
  result=a*b
  s=a+b
  return result
a=int(input(“a=”))
b=10
s=f(a, b)
print(s)
程序运行后,输入a的值为5,输出的结果为(  )
A. 程序报错 B. s
C. 15 D. 50
【解析】 输入数据后,将a = 5,b = 10代入定义的函数f中,得到result = 5*10 = 50,s =
5+10 = 15,然后函数返回 result的值,所以最后输出s的值,即函数中返回的变量result的值为50。
D
5. 下列程序段的功能是(  )
a=int(input("请输入一个正整数"))
b=int(input("请输入一个正整数"))
while b !=0:
  r=a % b
  a=b
  b=r
print(a)
A. 输出a-b的值 B. 输出a除以b的余数
C. 输出a,b的最小公倍数 D. 输出a,b的最大公约数
【解析】 本题主要考查Python程序的应用。分析程序,可知该程序实现输出a,b的最大公约数,如代入a=12,b=3可验证结果。
D
6. 有如下Python程序代码:
def MMax(a,b):
  if a>b:
    return a
  else:
    return b
下列函数调用的语句中,正确的是(  )
A. print(MMax(3,9)) B. print(MMax( a ,65))
C. k=MMax(31,23,54) D. k=MMax([31,23])
【解析】 选项B,在Python中,变量是动态的,因此函数的参数可以接受不同类型的变量。但是,在函数体内部需要对两个变量进行大小比较,而字符串不可以和整型直接进行大小比较,但可以和字符串进行比较。比如这样调用是可以的:print(MMax('a','d')),所以B错误。
A
7. 有如下程序段:
d=0
i=1
while i <=4 :
  b=int(input("b="))
  d=2* d + b
  i=i + 1
print(d)
依次输入 1 0 1 1 后,输出的结果是(  )
A. 13 B. 1011
C. 11 D. 0
【解析】 本题主要考查Python程序的执行。分析程序,可知该程序实现将输入的二进制数转换为十进制数,二进制数1011通过“按权展开、逐项相加”的方法转换为十进制数是11。
C
8. 编写程序,实现输入圆的半径r, 计算并输出该圆的面积和周长。实现上述功能的Python程序如下,圆的面积利用自定义函数O(r) 求得,请在横线上填入合适的代码:
①_______________,②__________。
import math
def O(r) :
  #计算圆的面积
  mj=  ①  
  return mj
r=float(input("请输入半径r:")
zc=2*math. pi*r
#调用函数
s=  ②  
print("圆的周长为:",zc, "面积为:",s)
【解析】 题目利用自定义函数O(r) 求得圆的面积,①处圆的面积存储在变量mj中,因此①处代码为math. pi*r**2;②处为调用函数,因此②处代码为O(r)。
math. pi*r**2
O(r)

展开更多......

收起↑

资源列表