(共14张PPT)
3.2.5函数与模块
想一想:
在学习顺序结构时我们学习了一些函数,你还能想起来下面这些函数中的几个呢?
abs( ) len( ) input( ) print( )
int( ) float( ) chr( ) ord( )
求绝对值 求序列的长度 输入 输出
整型 实型 返回对应的字符 返回对应的ASCII值
在用算法解决问题的过程中,经常采用模块化程序设计思想,将问题分解成若干个子问题,并用相对独立的程序段来针对性地解决各个子问题,提高程序设计的效率。
Python中的内建函数能实现许多功能,但在实际程序设计中,并不是所有的功能都有内建函数来直接提供支持,有时候需要根据实际情况自己构造函数以实现常用代码的模块化。定义函数的语法如下:
def 函数名(参数集合):
<函数体>
[return 函数值]
函数名就是标识符,命名要求与变量命名要求一样。
语句块必须缩进,预定4个空格。
定义中的参数列表称为形式参数,只是一种符号标识符
调用时写的参数是实际参数,是实实在在传入的值,简称实参。
调用的方式,就是函数名后加上小括号。
回顾一下,变量的命名规则是什么?可以由哪些组成?不能以什么开头?
可以由字母(包含汉字)、数字、下划线(_)组成,不能以数字开头。
def add(x,y): #x,y 为形式参数,也是标识符。
return x+y #需要返回值就用return
调用该函数:
print(add(1,2)+add(3,4)+add(5,6))其结果为:
(1+2)+(3+4)+(5+6)=21
自定义函数:
练一练
#定义一个求最大值的函数
def myMax(a,b):
if a>b:
return a
else:
return b
#调用这个函数
c=myMax(3,4)
print(c)
思考:
a,b 和 3,4哪个是形式参数、哪个是实参?
思考:
其输出结果为?
4
模块是什么?
函数就像积木,那么模块可以认为是一桶积木。
一般开发者会把类似的或者将一个项目函数收集在一个模块中。Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
python模块的导入——import
使用import 关键字,可以将一个程序中已出现的一个或多个函数或模块,引入到另一个python代码中,从而实现代码的复用。语法如下:
import 模块名 或 from 模块名 import 函数名
例子如下:
import math 或 from math import sqrt(引用math模块中的sqrt函数)
math模块
math模块提供了众多功能强大的数学函数,可以有效提高编程效率,使用这些函数时,需要使用import math导入math模块。
random模块
在编写程序时,经常需要提供一些随机数据。大多数编程语言提供了生成伪随机数的函数,在Python中这类函数被封装在random模块中。
函数名 说明 举例
random.random() 返回[0.0,1.0]区间内的一个随机小数 random.random()返回0.9523521796999529
random.uniform(a,b) 返回[a,b]区间内的一个随机小数 random.uniform(1,3)返回2.3403540401554146
random.randint(a,b) 返回[a,b]区间内的一个随机整数 random.randint(1,3)返回2
random.randrange([start],end,[step]) 返回[start,end)区间内的一个整数,start和step默认都是1 random.randrange(1,10)返回5
random.choice() 随机返回给定序列中的一个元素 random.choice(['a','b','c'])返回'c'
random.shuffle(x,[random]) 将可变序列的所有元素随机排列 random.shuffle([1,2,3,4])返回[1, 4, 3, 2]
Image模块
Image 模块提供了同名的类用来表示PIL的图像。Image模块还提供了许多工厂(factory)函数,包块从文件加载图像的函数,以及创建新图像的函数。
# 获得图像的高和宽 h, w = img.size
# 获得图像的格式 geshi = img.format
# 获得图像的模式 mo = img.mode
# 旋转图像后显示 img.rotate().show()
# 将文件重新保存为time.png img.save('time', 'png')
# 保存与图像数据相关的字典 dic = img.info
除了上述提到的模块,Python还包括了大量的其他模块,它们的功能涉及系统管理科学计算、图形处理等各个领域。比如,用于实现部分操作系统功能(可用于文件、目录等操作)的os模块,与时间处理有关的time模块,可以实现科学计算、数据可视化的numpy和matplotlib,用于多媒体开发和游戏软件开发的pygame模块,支持图形处理的tkinter等。
演示完毕,谢谢观看!
3.2.5函数与模块