4.1.4《Python的函数—自定义函数》导学案
姓名: 班级:
一、新知讲解。
自定义函数的格式 注意事项
def 函数名(参数1,参数2…): <函数体> [return 函数值] def的含义是: 函数名的命名要求:
调用函数的格式
无参数时 函数名()
有参数时 函数名(参数1,参数2…)
二、巩固练习
1. 1个篮球场的长为28m,宽为15m,请自定义函数,计算并输出篮球场的面积。
代码 运行结果
sq( ): #自定义函数 sq = 28 * 15 return lqc_sq= #调用函数 print(lqc_sq) 420
2.1个篮球场的长为28m,宽为15m;1个双人羽毛球场的长为13.4m,宽为6.1m;1个足球场的长为105m,宽为70m,请自定义函数,计算并输出篮球场、羽毛球场、足球场的面积。
代码 运行结果
def sq( , ): #自定义函数 sq = a*b return sq #返回结果 lqc_sq= #调用函数 ymqc_sq= zqc_sq= print('1个篮球场的面积是',lqc_sq) print('1个羽毛球场的面积是',ymqc_sq) print('1个足球场的面积是',zqc_sq) 1个篮球场的面积是 420 1个羽毛球场的面积是 81.74 1个足球场的面积是 7350
3.学校有8个羽毛球场,8个篮球场,一个足球场,请修改程序,计算并输出学校运动区域的总面积。
代码 运行示例
学校运动场的总面积是 11363.92
三、实践操作
1.下列代码的功能是找出两个小组的最高成绩在第1小组和第2小组。请分析代码,尝试自定义myMax( )函数,返回成绩列表的最大值,并调用myMax( )函数,比较输出最高成绩在哪个小组。
原始代码 自定义函数的代码
lst1=[91,95,90,88,93] max1=lst1[0] for i in lst1[1:]: if i>max1: max1=i lst2=[92,91,93,90,89] max2=lst2[0] for i in lst2[1:]: if i>max2: max2=i if max1>max2: print("最高分在第1小组") else: print("最高分在第2小组")
2.下列代码的功能是从键盘输入3个三位正整数,将其逆序输出并相加。请分析左侧代码,尝试自定义函数,并调用自定义函数,完成左侧代码的功能。
原始代码 自定义函数的代码
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)
3.下列代码的功能是能从键盘输出整数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 fun(x): x+=3 return x x=3 print(fun(x),x)
def fun(): x=6 return x x=3 print(fun( ),x)
import math def f(t): returnmath.ceil(t)+math.floor(t) m=f(-3.5) print(m)
五、课后思考
小智前四周的语文成绩是:91,95,90,88;小慧前4周的语文成绩是:92,91,93,90。有以下三种解题思路,请任选其一编写程序,计算并输出哪位同学的平均分最高?
1.自定义函数avg(),计算每位同学的平均分
2.使用内建函数sum()和len()计算计算每位同学的平均分
3.使用numpy的函数mean,计算计算每位同学的平均分
程序 测试效果
小慧的平均分最高