(共17张PPT)
3.2.8 函数与模块
DATA ACQUISITION AND CODING
《数据与计算》
0. 情境导入
现有两个小组的技术成绩如下,请用程序找出最高分在哪个小组?
第一小组:91,93,88,89,92
第二小组:92,91,92,90,88
解题思路:
lst1=[91,93,88,89,92]
max1=lst1[0]
for item in lst1[1:]:
if item>max1:
max1=item
93
92
比较大小
最高分在第一小组
lst2=[92,91,92,90,88]
max2=lst2[0]
for item in lst2[1:]:
if item>max2:
max2=item
if max1>max2:
print("最高分在第一小组")
else:
print("最高分在第二小组")
0. 情境导入
lst1=[91,93,88,89,92]
max1=lst1[0]
for item in lst1[1:]:
if item>max1:
max1=item
lst2=[92,91,92,90,88]
max2=lst2[0]
for item in lst2[1:]:
if item>max2:
max2=item
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. 函数
函数:把一段经常需要使用的代码片段封装起来,记为:y=f(x),f称为函数名,x称为参数,y称为返回值。在需要使用时可以直接调用,并且返回结果
在Python语言中,函数分为两大类:Python语言本身提供的标准函数和程序员编写的自定义函数
在编写Python程序时,可以使用函数来组织代码
1. 函数
def 函数名(参数集合):
<函数体>
[return 函数值]
函数名就是标识符,命名要求与变量命名要求一样。
语句块必须缩进,预定4个空格。
定义中的参数列表称为形式参数,只是一种符号标识符
函数定义,只是声明了一个函数,它不能被执行,需要调用执行。
调用的方式,就是函数名后加上小括号。
调用时写的参数是实际参数,是实实在在传入的值,简称实参。
自定义函数
例:
def add(x,y):
sum = x + y
return sum
1. 函数
def 函数名(参数集合):
<函数体>
[return 函数值]
自定义函数
这两段代码,是否定义了函数呢?
def hello():
print("hello world")
def sum(a,b):
return a+b
函数定义可以没有参数集合和返回值,也可以没有函数体直接返回函数值。
1. 函数
自定义函数
尝试自定义myMax函数,可以返回列表中的最大值
之前程序中的执行过程:
lst1=[91,93,88,89,92]
max1=lst1[0]
for item in lst1[1:]:
if item>max1:
max1=item
lst2=[92,91,92,90,88]
max2=lst2[0]
for item in lst2[1:]:
if item>max2:
max2=item
if max1>max2:
print("最高分在第一小组")
else:
print("最高分在第二小组")
得出函数体:
?
max=lst[0]
for item in lst[1:]:
if item>max:
max=item
?
def myMax(lst):
return max
#调用这个函数
If :
print("最高分在第一小组")
else:
print(“最高分在第e二小组")
myMax(lst1)>myMax(lst2)
为什么定义时参数是lst,调用时却可以是lst1,lst2?
1. 函数
自定义函数
形式参数:形参是在定义函数的时候给出,是形式上的参数,可以理解为数学的X,没有实际的值,通过别人赋值后才有意义。这里的lst是形参,用来描述函数执行的步骤。
实际参数:是在调用函数的时候给出的,真实的数据信息,是实际意义上的参数。调用函数时,Lst1,Lst2这些实参传递给lst,从而执行对应的函数体操作。
def myMax(lst):
max=lst[1]
for item in lst[1:]:
if item>max:
max=item
return max
if myMax(lst1)>myMax(lst2):
print("最高分在第一小组")
else:
print(“最高分在第e二小组")
形式参数
实际参数
实际参数
1. 函数
练一练
输入3个三位正整数,将其逆序输出并相加。思考程序应如何实现?
#请将下列代码修改
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)
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)
2. 模块
一个函数仅相当于一块功能积木,模块好比一盒积木,通过不同的积木组合可以拼出多种主题的玩具。一个模块可以包含若干个函数。模块和函数的关系如下图 所示:
2. 模块
方法1:
使用import 关键字,可以将模块中的所有函数和常量都引入到另一个python代码中,从而实现代码的复用。语法如下:
import 模块名
方法2:
一个模块可能包含大量函数,但是一个程序可能不会使用它的全部函数,Python 的 from 语句是从模块中导入一个指定的函数到当前空间中。语法如下:
from 模块名 import 函数名
模块导入
2. 模块
请尝试应用math模块计算球的体积。
import math
r=int(input())
pi=math.pi
s=pi*pow(r,2)
print(s)
2. 模块
请尝试应用random模块产生一个[5,10]范围的实数。
import random
a=random.uniform(5,10)
print(a)
2. 模块
在一次考试后,班里的同学都进步很大,老师决定给大家发些奖品。奖品有书book,笔pen,零食food,作业homework。每个同学只能获得一样奖品,并且要通过python程序来抽奖。
首先请大家补全这个自定义函数,能从已经给出的这四样奖品中随机抽出一个奖品,并能提示抽奖结果。
?
gifts=[‘book’,‘pen’,‘food’,‘homework’] #设置四种奖品
def choice_gifts(): #定义抽奖函数
gift= ? #从gifts中随机选一
print('你得到了%s'%gift)
choice_gifts() #调用抽奖函数
import random
gifts=[‘book’,‘pen’,‘food’,‘homework’] #设置四种奖品
def choice_gifts(): #定义抽奖函数
gift= random.choice(gifts) #从gifts中随机选一
print(“你得到了”,gift)
choice_gifts() #调用抽奖函数
2. 模块
2. 模块
书本p67页,导入的turtle模块
内建函数
课堂小结
Python常见内建函数的使用
自定义函数
自定义函数的基本格式和使用
常见模块
模块的导入和使用
3. 课堂小结