(共22张PPT)
第三章 算法的程序实现
3.2.5 函数与模块
学习目标
1.熟悉Python内置模块。
2.能用Python内置函数实现简单算法。
你在考试时会用到哪些文具?是全部拿在手里吗?若不是,通常是如何保管?
同样的,Python有很多内建函数、常数,但这些函数、常数不可能每次编程都用到,每次都加载这些函数、常数到当前的编程环境中是没有必要的,和你的做法类似,把这些内建函数和常数放到工具包中,这些工具包在Python中称之为模块。
知识点一:模块的导入及应用(内置函数)
1、模块的定义
新课讲授
就是函数库,即由若干函数所构成的可复用代码组件。
Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
这些模块包括Python内置的模块和来自第三方的模块。模块中补充了许多功能强大的函数,在使用import语句或from-import语句将函数所在的模块导入后,就能使用其中的函数,从而实现代码的复用。
语法:import 模块名
(文具在哪个文具盒,相当于导入的是一个文具盒,是相对路径)
2、python模块的导入—import:使用import或from-import语句导入要使用的函数。
import语句
from-import语句
语法:from 模块名 import 函数名
(文具盒中哪个文具,是绝对路径)
from 模块名 import *
*是通配符,表示导入文具盒中的全部文具,和import 模块名效果相同。
语法:import 模块名
(相对路径)
import math
a=math.sqrt(9)
print(a)
import语句
from-import语句
语法:from 模块名 import 函数名
(绝对路径)
from math import sqrt
a=sqrt(9)
print(a)
利用sqrt()函数求9的算术平方根并输出到屏幕上
3、常用的python内置模块。
math模块(数学运算)
import math
r=float(input('请输入圆的半径:'))
p=math.pi
s=p*math.pow(r,2)
print('圆面积是:',str(s))
在编程求圆面积时,公式s=πr2中的π和r2可以分别调用math模块中的圆周率常数math.pi和函数pow(r,2)来完成。其完整的程序如下:
random模块(生成随机数)
import random
cla=['(2)班','(3)班','(4)班','(5)班','(6)班']
random.shuffle(cla)
for c in cla:
print(c,end=' ')
例如有高二年级的(2)班、(3)班、(4)班、(5)班、(6)班共5个班的学生参加军训表演比赛,为了公平起见,需要随机安排他们的出场顺序。使用random模块,可以完成此任务,相应的Python程序如下:
Image模块(对图像操作)
Image模块是PIL库中的重要模块
# 获得图像的文件格式 geshi = img.format
# 获得图像的高和宽 h, w = img.size
# 获得图像的颜色模式 mo = img.mode
# 将图像旋转45度后显示 img.rotate(45).show()
from PIL import Image
i=Image.open('小飞象.jpg') #打开小飞象.jpg图像文件
print(i.format) #获取图像文件格式
print(i.size) #获取图像尺寸大小(以像素为单位表示图像的宽度和高度)
print(i.mode) #获取图像的颜色模式
i.rotate(45).show() #将图像旋转45°后显示
Python中有很多内建函数,现有一个列表lst = [3, 2, 5, 4, 7],请问要找到列表中最大的数应该使用哪个函数?
max(lst)
同学们猜猜看,所有想实现的功能都有对应函数吗?
内置函数
自定义函数
Python函数分类
知识点二:函数的构造及应用(自定义函数)
1、定义(构造)函数的语法
函数名:命名规则和变量名一样
参数集合:即形式参数,简称形参,是调用该函数需要提供的数据
函数体:是函数需要执行的具体代码(计算过程)
函数值:是函数执行完毕以后计算的结果,需要返回值就用return
完成函数的构造后,在程序中就可以根据需要调用该函数。
def Area(a,b,c):
p=(a+b+c)/2
s=(p*(p-a)*(p-b)*(p-c))**0.5
return s
完成函数的构造后,在程序中就可以根据需要调用该函数。
s1=Area(3,4,5)
s2=Area(4,5,6)
print(s1+s2)
函数定义,只是声明了一个函数,它不能被执行,需要调用后才被执行。
例如构造一个求两个数最大值的函数,相应的Python程序如下:
#定义一个求最大值的函数
def Max(a,b):
if(a>b):
return a
else:
return b
调用的方式,就是函数名后加上小括号,调用时小括号内写的参数是实际参数,是实实在在传入的值,简称实参。
#调用这个函数
c=Max(3,4)
print(c)
def 警示():
print(“注意安全”)
警示()
无参数集合、无返回函数值
观察下面3个函数的构造和调用方式,指明哪些部分是必须的,哪些部分是可选的?
def Max(a,b):
if(a>b):
return a
else:
return b
c=Max(3,4)
有参数集合、有返回函数值
def 警示(m):
print(m)
警示(“危险”)
警示(“注意”)
有参数集合、无返回函数值
函数名、函数体必须有,
参数集合、函数值可选。
小节:
Python函数分内置函数和自定义函数。
内置模块和第三方模块中有很多函数,使用import语句或from-import语句将函数或模块导入后,就能使用其中的函数,从而实现代码的复用。
完成函数定义/构造/创建后,就可以调用该函数。
1.下面程序段定义的函数fa用于计算n!,请在划线处填入合适的代码?
def fa(n):
i=1
s=1
while i<=n:
s*=i
i=i+1
a=int(input("请输入整数a的值:"))
print(fa(a))
若输入的值是是5,则输出的结果为
随堂练习
return s
120
2.以下程序段定义的函数reverse能够得到整数n翻转后的数字(例:1234翻转后是4321)。
def reverse(n):
r = 0
while n > 0:
c = n % 10
r = ①
n = ②
return r
a=int(input("请输入整数a的值:"))
print(reverse(a))
①的程序是
②的程序是
若输入的值是是20221106,则输出的结果为
r*10+c
n//10
60112202
3.以下程序能实现对输入的数进行取整:
n = input("请输入一个数:")
n = math.floor(float(n))
print(n)
该程序段划线处应填入的代码为
若输入的值是是3.14,则输出的结果为
import math
3
4.下面程序段可以生成10个[1,100]范围内的随机整数(允许重复)存放在列表numbers中:
from random import randint
numbers = []
for i in range(0, 10):
n =
numbers.append(n)
print(numbers)
该程序段划线处应填入的代码为
该程序输出的结果可能为
randint(1, 100)