资源简介 (共16张PPT)3.2.8函数与模块0.情境导入【案例一】下列是两个小组的成绩,请编写程序,找出最高分在哪个小组?lst1=[91,95,90,88,93]max1=lst1[0]for i in lst1[1:]:if i>max1:max1=i91,95,90,88,93第1小组92,91,93,90,89第2小组9593最高分在第1小组【解题思路】lst2=[92,91,92,90,88]max2=lst2[0]for i in lst2[1:]:if i>max2:max2=iif 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=ilst2=[92,91,92,90,88]max2=lst2[0]for i in lst2[1:]:if i>max2:max2=iif 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 + yreturn sumadd(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+bdef sum(a,b):c=a+breturn c函数体:可有可无返回值:可有可无函数体和返回值,两者必有其一一、函数lst1=[91,95,90,88,93]max1=lst1[0]for i in lst1[1:]:if i>max1:max1=ilst2=[92,91,92,90,88]max2=lst2[0]for i in lst2[1:]:if i>max2:max2=iif 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=ireturn maxlst1=[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%10ass=a//10%10ab=a//100aa=str(ag)+str(ass)+str(ab)bg=b%10bs=b//10%10bb=b//100bb=str(bg)+str(bs)+str(bb)cg=c%10cs=c//10%10cb=c//100cc=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%10s=a//10%10b=a//100aa=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 mathr=int(input())pi=math.pis=pi*pow(r,2)print(s)名称 含义math.e 自然常数emath.pi 圆周率πmath.ceil(x) 对x向上取整,比如x=1.2, 返回2math.floor(x) 对x向下取整,比如x=1.2,返回1math.pow(x,y) 指数运算,得到x的y次方math.log(x) 对数运算,默认基底为emath.sin(x) 正弦函数math.cos(x) 余弦函数math.tan(x) 正切函数math.degrees(x) 弧度转换成角度math.radians(x) 角度转换成弧度二、模块【课堂练习4】请尝试应用random模块产生一个[5,10]范围的实数。import randoma=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 randomrandom.choice(gifts)课堂小结def 函数名(参数1,参数2…):<函数体>[return 函数值]自定义函数import 模块名from 模块名 import 函数名导入模块四、课堂小结Python常见内建函数的使用内建函数thanks 展开更多...... 收起↑ 资源预览