3.2.8函数与模块 课件 2021—2022学年浙教版(2019)必修1(16张PPT)

文档属性

名称 3.2.8函数与模块 课件 2021—2022学年浙教版(2019)必修1(16张PPT)
格式 pptx
文件大小 2.9MB
资源类型 教案
版本资源 浙教版(2019)
科目 信息技术(信息科技)
更新时间 2022-05-13 11:11:32

图片预览

文档简介

(共16张PPT)
3.2.8函数与模块
0.情境导入
【案例一】下列是两个小组的成绩,请编写程序,找出最高分在哪个小组?
lst1=[91,95,90,88,93]
max1=lst1[0]
for i in lst1[1:]:
if i>max1:
max1=i
91,95,90,88,93
第1小组
92,91,93,90,89
第2小组
95
93
最高分在第1小组
【解题思路】
lst2=[92,91,92,90,88]
max2=lst2[0]
for i in lst2[1:]:
if i>max2:
max2=i
if max1>max2:
print("最高分在第一小组")
else:
print("最高分在第二小组")
第1小组的最高分
第2小组的最高分
比较两个小组的最高分
0.情境导入
lst1=[91,95,90,88,93]
max1=lst1[0]
for i in lst1[1:]:
if i>max1:
max1=i
lst2=[92,91,92,90,88]
max2=lst2[0]
for i in lst2[1:]:
if i>max2:
max2=i
if max1>max2:
print("最高分在第一小组")
else:
print("最高分在第二小组")
函数max( )
lst1=[91,93,88,89,92]
lst2=[92,91,92,90,88]
if max(lst1)>max(lst2):
print("最高分在第一小组")
else:
print("最高分在第二小组")
一、函数
1.概念:是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
2.优点:能提高应用的模块性,和代码的重复利用率。
3.类型:
(1)内建函数:Python提供的函数,比如print()、input()、max()…
(2)自定义函数:用户自己创建函数
函数 描述
print(x) 输出x的值
input([prompt]) 获取用户输入
int(object) 将字符串和数字转换成整型
float(object) 将字符串和数字转换成实型
abs(x) 返回x的绝对值
len(seq) 返回序列的长度
max(s,_arg...]) 返回序列的最大值(如果给定多个参数,则返回给定参数中的最大值)
min(,[args...]) 返回序列的最小值(如果给定多个参数,则返回给定参数中的最小值)
关键字def:定义、说明
函数名:命名要求与变量的标识符命名要求一样
参数:可有可无
语句块:
必须缩进
不能在函数体里调用函数本身,否则会陷入循环调用
应用特点:先定义函数,再调用函数,最后执行函数
调用函数:
无参数时,函数名()
有参数时,函数名(参数1,参数2...)
一、函数
def 函数名(参数1,参数2…):
<函数体>
[return 函数值]
自定义函数
def add(x,y): #定义函数
sum = x + y
return sum
add(1,2) #调用函数
例如
函数名(参数1,参数2…)
调用函数
注意事项
一、函数
def hello():
print("hello world")
【思考】观察分析下列两段代码,是否定义了函数?并总结归纳参数、函数体、返回值之间的关系。
def sum(a,b):
print(a+b)
参数:可有可无
def hello(x):
print("hello world"*x)
def sum(a,b):
return a+b
def sum(a,b):
c=a+b
return c
函数体:可有可无
返回值:可有可无
函数体和返回值,两者必有其一
一、函数
lst1=[91,95,90,88,93]
max1=lst1[0]
for i in lst1[1:]:
if i>max1:
max1=i
lst2=[92,91,92,90,88]
max2=lst2[0]
for i in lst2[1:]:
if i>max2:
max2=i
if max1>max2:
print("最高分在第一小组")
else:
print("最高分在第二小组")
【课堂练习1】请分析第一小组和第二小组最高分的代码,尝试自定义myMax( )函数,返回成绩列表的最大值,并调用myMax( )函数,比较输出最高成绩在哪个小组。
#自定义函数myMax ( )
#函数名,参数
max=lst[0]
for i in lst[1:]:
if i>max:
max=i
#返回成绩列表的最高值
lst1=[91,95,90,88,93]
lst2=[92,91,92,90,88]
#调用myMax( )函数
if :
print("最高分在第1小组")
else:
print("最高分在第2小组")
myMax(lst1)>myMax(lst2)
def myMax(lst):
return max
为什么定义函数时参数是lst,调用函数时,参数是lst1,lst2?
一、函数
#自定义函数myMax ( )
def myMax(lst):
max=lst[0]
for i in lst[1:]:
if i>max:
max=i
return max
lst1=[91,95,90,88,93]
lst2=[92,91,92,90,88]
#调用myMax( )函数
if myMax(lst1)>myMax(lst2):
print("最高分在第一小组")
else:
print("最高分在第e二小组")
形式参数
实际参数
1.形式参数
定义函数时的参数,是形式上的参数
可以理解为数学的X,没有实际的值,通过赋值后才有意义。
这里的lst是形参,用来描述函数执行的步骤。
2.实际参数:
调用函数时的参数,是真实的数据信息。
调用函数时,Lst1,Lst2这些实参的数据传递给lst,从而执行对应的函数体操作。
一、函数
a=int(input())
b=int(input())
c=int(input())
ag=a%10
ass=a//10%10
ab=a//100
aa=str(ag)+str(ass)+str(ab)
bg=b%10
bs=b//10%10
bb=b//100
bb=str(bg)+str(bs)+str(bb)
cg=c%10
cs=c//10%10
cb=c//100
cc=str(cg)+str(cs)+str(cb)
sum=int(aa)+int(bb)+int(cc)
print(aa)
print(bb)
print(cc)
print(sum)
【课堂练习2】左侧的代码是从键盘输入3个三位正整数,将其逆序输出并相加。请分析左侧代码,尝试自定义函数,并调用自定义函数,完成左侧代码的功能。
a=int(input())
b=int(input())
c=int(input())
#自定义将数字逆序显示的函数
def nixu(a):
g=a%10
s=a//10%10
b=a//100
aa=str(g)+str(s)+str(b)
return int(aa)
#调用函数,输出逆序数字
sum=nixu(a)+nixu(b)+nixu(c)
print(nixu(a))
print(nixu(b))
print(nixu(c))
print(sum)
观察左侧代码,哪些代码段可以设置为自定义函数?
二、模块
1.函数与模块的关系:
一个函数仅相当于一块功能积木,模块好比一盒积木,通过不同的积木组合可以拼出多种主题的玩具。一个模块可以包含若干个函数。
函数
函数
函数
模块
二、模块
2.模块导入:
(1)方法一:用import关键字将模块中的所有函数和常量都引入到当前代码中。
语法如下:
(2)方法二:不需要使用模块中的全部函数时,用from 语句从模块中导入一个指定的函数到当前代码中。
语法如下:
import 模块名
from 模块名 import 函数名
二、模块
【课堂练习3】请尝试应用math模块计算球的体积。
import math
r=int(input())
pi=math.pi
s=pi*pow(r,2)
print(s)
名称 含义
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) 角度转换成弧度
二、模块
【课堂练习4】请尝试应用random模块产生一个[5,10]范围的实数。
import random
a=random.uniform(5,10)
print(a)
名称 含义
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) 将序列的所有元素随机排序
三、实践操作
【课堂练习5】在一次考试后,班里的同学都进步很大,老师决定给大家发些奖品。奖品有书book,笔pen,零食food,作业homework。每个同学只能获得一样奖品,并且要通过python程序来抽奖。
首先请大家补全这个自定义函数,能从已经给出的这四样奖品中随机抽出一个奖品,并能提示抽奖结果。
? #导入随机模块
gifts=[‘book’,‘pen’,‘food’,‘homework’] #设置四种奖品
#定义抽奖函数
def choice_gifts():
gift= ? #从gifts中随机选一
print('你得到了%s'%gift)
#调用抽奖函数
choice_gifts()
import random
random.choice(gifts)
课堂小结
def 函数名(参数1,参数2…):
<函数体>
[return 函数值]
自定义函数
import 模块名
from 模块名 import 函数名
导入模块
四、课堂小结
Python常见内建函数的使用
内建函数
thanks