4.1.4python的函数-自定义函数 课件 2021—2022学年粤教版(2019)高中信息技术必修1(18张PPT)

文档属性

名称 4.1.4python的函数-自定义函数 课件 2021—2022学年粤教版(2019)高中信息技术必修1(18张PPT)
格式 pptx
文件大小 1.3MB
资源类型 教案
版本资源 粤教版(2019)
科目 信息技术(信息科技)
更新时间 2022-05-19 14:48:02

图片预览

文档简介

(共18张PPT)
4.1.4python的函数-自定义函数
if sum1>sum2:
print("小智的总分最高")
else:
print("小慧的总分最高")
0.情境导入
【案例一】下列是小智和小慧语文、数学、英语和物理的期末成绩,请编写程序,找出哪位同学的总分最高?
lst1=[91,95,90,88]
sum1=0
for i in lst1[0:]:
sum1=sum1+i
91,95,90,88
小智
92,91,93,90
小慧
364
366
小慧的总分最高
【解题思路】
lst2=[92,91,93,90]
sum2=0
for i in lst2[0:]:
sum2=sum2+i
小智的总分
小慧的总分
比较两人的总分
0.情境导入
lst1=[91,95,90,88]
sum1=0
for i in lst1[0:]:
sum1=sum1+i
lst2=[92,91,93,90]
sum2=0
for i in lst2[0:]:
sum2=sum2+i
if sum1>sum2:
print("小智的总分最高")
else:
print("小慧的总分最高")
求和函数sum( )
lst1=[91,95,90,88]
lst2=[92,91,93,90]
if sum(lst1)>sum(lst2):
print("小智的总分最高")
else:
print("小慧的总分最高")
一、函数
1.概念:是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
2.优点:提高应用的模块性,代码的重复利用率。
3.类型:
(1)内建函数:Python提供的函数,比如print()、input()、max()…
(2)自定义函数:用户自己创建函数
函数 描述
print( ) 输出函数
input(x) 显示出信息x,并要求输入函数
int(x) 将变量x转换成整型
float(x) 将变量x转换成实型
sum(x) 计算变量x中元素的总和
len(x) 计算变量x的长度,但x必须是可以计算长度的类型
max(x) 返回变量x的最大值
min(x) 返回变量x的最小值
关键字def:定义、说明
函数名:命名要求与变量的标识符命名要求一样
参数:可有可无
语句块:
必须缩进
不能在函数体里调用函数本身,否则会陷入循环调用
应用特点:先定义函数,再调用函数,最后执行函数
调用函数:
无参数时,函数名()
有参数时,函数名(参数1,参数2...)
一、函数
def 函数名(参数1,参数2…):
<函数体>
[return 函数值]
自定义函数
def add( ): #定义函数
sum = 1 + 2
return sum
sum1=add() #调用函数
print(sum1)
例如
函数名(参数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]
sum1=0
for i in lst1[0:]:
sum1=sum1+i
lst2=[92,91,93,90]
sum2=0
for i in lst2[0:]:
sum2=sum2+i
if sum1>sum2:
print("小智的总分最高")
else:
print("小慧的总分最高")
【案例二】请分析计算小智和小慧成绩总分的代码,尝试自定义mySum( )函数,返回成绩列表的总和,并调用mySum( )函数,比较输出谁的总分最高。
#自定义函数mySum ( )
#函数名,参数
sum1=0
for i in lst1[0:]:
sum1=sum1+i
#返回成绩列表的总和
lst1=[91,95,90,88]
lst2=[92,91,93,90]
#调用mySum( )函数
if :
print("小智的总分最高")
else:
print("小慧的总分最高")
mySum(lst1)>mySum(lst2)
def mySum (lst):
return sum1
为什么定义函数时参数是lst,调用函数时,参数是lst1,lst2?
一、函数
#自定义函数mySum ( )
def mySum(lst):
sum1=0
for i in lst1[0:]:
sum1=sum1+i
return sum1
lst1=[91,95,90,88]
lst2=[92,91,93,90]
#调用mySum( )函数
if mySum(lst1)>mySum(lst2):
print("小智的总分最高")
else:
print("小慧的总分最高")
形式参数
实际参数
1.形式参数
定义函数时的参数,是形式上的参数
可以理解为数学的X,没有实际的值,通过赋值后才有意义。
这里的lst是形参,用来描述函数执行的步骤。
2.实际参数:
调用函数时的参数,是真实的数据信息。
调用函数时,Lst1,Lst2这些实参的数据传递给lst,从而执行对应的函数体操作。
【练习1】1个篮球场的长为28m,宽为15m,请自定义函数,计算并输出篮球场的面积。
二、巩固练习
def sq( ):
sq = 28 * 15
return sq
lqc_sq=sq()
print(lqc_sq)
【练习2】1个篮球场的长为28m,宽为15m;1个双人羽毛球场的长为13.4m,宽为6.1m;1个足球场的长为105m,宽为70m,请自定义函数,计算并输出篮球场、羽毛球场、足球场的面积。
二、巩固练习
def sq(a,b):
sq = a*b
return sq
lqc_sq=sq(28,15)
ymqc_sq=sq(13.4,6.1)
zqc_sq=sq(105,70)
print('1个篮球场的面积是',lqc_sq)
print('1个羽毛球场的面积是',ymqc_sq)
print('1个足球场的面积是',zqc_sq)
【练习3】学校有8个羽毛球场,8个篮球场,一个足球场,请修改程序,计算并输出学校运动区域的总面积。
二、巩固练习
def sq(a,b):
sq = a*b
return sq
lqc_sq=sq(28,15)
ymqc_sq=sq(13.4,6.1)
zqc_sq=sq(105,70)
s_sq= lqc_sq*8+ ymqc_sq*8+ zqc_sq
print('学校运动场的总面积是', s_sq)
三、实践操作
x=int(input())
y=int(input())
z=int(input())
xg=a%10
xs=a//10%10
xb=a//100
xb=str(xg)+str(xs)+str(xb)
yg=b%10
ys=b//10%10
yy=b//100
yy=str(yg)+str(ys)+str(yb)
zg=c%10
zs=c//10%10
zb=c//100
zz=str(zg)+str(zs)+str(zb)
sum=int(xx)+int(yy)+int(zz)
print(xx)
print(yy)
print(zz)
print(sum)
【练习4】左侧的代码是从键盘输入3个三位正整数,将其逆序输出并相加。请分析左侧代码,尝试自定义函数,并调用自定义函数,完成左侧代码的功能。
x=int(input())
y=int(input())
z=int(input())
#自定义将数字逆序显示的函数
def nixu(x):
g=x%10
s=x//10%10
b=x//100
xx=str(g)+str(s)+str(b)
return int(xx)
#调用函数,输出逆序数字
sum=nixu(x)+nixu(y)+nixu(z)
print(nixu(x))
print(nixu(y))
print(nixu(z))
print(sum)
观察左侧代码,哪些代码段可以设置为自定义函数?
三、实践操作
【练习5】左侧的代码是能从键盘输出整数n,计算并输出1!+2!+…+n!的结果。请分析左侧代码,尝试自定义函数,并调用自定义函数,完成左侧代码的功能。
n=int(input('请输入整数n='))
s=0
for i in range(1,n+1,1):
sj=1
for j in range(1,i+1,1):
sj=sj*j
s=s+sj
print(s)
def sj(i): #定义求阶乘的函数
sj=1
for j in range(1,i+1,1):
sj=sj*j
return sj
n=int(input('请输入整数n='))
s=0
for i in range(1,n+1,1):
s=s+sj(i)
print(s)
课堂小结
def 函数名(参数1,参数2…):
<函数体>
[return 函数值]
自定义函数
函数名(参数1,参数2…)
调用函数
四、课堂小结
Python常见内建函数的使用
内建函数
五、课后思考
【练习6】下列是小智和小慧开学前4周的语文成绩,请编写程序,找出哪位同学的平均分最高?
lst1=[91,95,90,88]
sum1=0
for i in lst1[0:]:
sum1=sum1+i
num1=len(lst1)
avg1=sum1/num1
91,95,90,88
小智
92,91,93,90
小慧
364
366
小慧的平均分最高
【解题思路】
lst2=[92,91,93,90]
sum2=0
for i in lst2[0:]:
sum2=sum2+i
num2=len(lst2)
avg2=sum2/num2
if avg1>avg2:
print("小智的平均分最高")
else:
print("小慧的平均分最高")
小智的平均分
小慧的平均分
比较两个小组的最高分
91
91.5
五、课后思考
lst1=[91,95,90,88]
sum1=0
for i in lst1[0:]:
sum1=sum1+i
num1=len(lst1)
mean1=sum1/num1
lst2=[92,91,93,90]
sum2=0
for i in lst2[0:]:
sum2=sum2+i
num2=len(lst2)
mean2=sum2/num2
if mean1>mean2:
print("小智的平均分最高")
else:
print("小慧的平均分最高")
求和函数sum( )
长度函数len( )
mean1=sum(lst1)/len(lst1)
mean2=sum(lst2)/len(lst2)
if mean1>mean2:
print("小智的平均分最高")
else:
print("小慧的平均分最高")
五、课后思考
lst1=[91,95,90,88]
sum1=0
for i in lst1[0:]:
sum1=sum1+i
num1=len(lst1)
mean1=sum1/num1
lst2=[92,91,93,90]
sum2=0
for i in lst2[0:]:
sum2=sum2+i
num2=len(lst2)
mean2=sum2/num2
if mean1>mean2:
print("小智的平均分最高")
else:
print("小慧的平均分最高")
求平均函数mean( )
import numpy as np #导入numpy模块
lst1=[91,93,88,89]
lst2=[92,91,93,90]
if np.mean(lst1)>np.mean(lst2):
print("小智的平均分最高")
else:
print("小慧的平均分最高")
thanks