Python程序设计5——函数
2013-08-06 09:15
232 查看
本章介绍Python中模块和函数的概念。
Python程序是由包、模块和函数三者组成,包是由一系列模块组成的集合,模块是处理某一类问题的函数和类的集合。Python提供的许多工具包和模块安装在Python的安装目录下的lib子目录中。例如,在Python安装目录下lib目录下,有一个sqlite3文件夹,该文件夹就是一个包,这个包用于完成连接sqlite3数据库的基本操作。在sqlite3文件夹下有一个test的子包,还有一个_init_.py文件,该文件是sqlite3包的注册文件,如果没有该文件,Python将不能识别sqlite3包。包必须至少包含一个_init_.py文件,该文件的内容可以为空。_init_.py用于标识当前文件夹是一个包。
View Code
可以看到__doc__提取了程序的字符串属性
1.apply()函数
apply()函数可以实现调用可变参数列表的功能,把函数的参数放到一个元组或序列中。apply()函数的语法格式如下:
apply(function_name[,argslist])
该函数有三个参数:
function_name:该参数是必须的,表示自定义函数的名称
args:该参数是可选的,它是一个包含了自定义函数参数的列表和元组,如果不指定该参数,则表示被执行的函数没有任何参数
kwargs:该参数可选,它是一个字典类型的参数,字典中key值为函数的参数名称,value为实际参数的值。
apply函数的元组参数是有序的,本例中,元素的顺序必须与login函数的形式参数顺序一致。
2.filter函数
filter函数可以对序列做过滤处理,简单的说就是用函数来过滤一个序列,把序列的每一项传递到过滤函数。对自定义函数的参数返回的结果是否为True做过滤,并一次性返回处理结果,如果过滤函数返回的结果为False,那么该元素将从列表中删除该项。filter函数语法格式如下:
filter(function_name,sequence)
filter函数有两个参数,其中:
function_name是必须的,是自定义函数,在函数function_name中定义过滤规则,如果function_name函数的返回值为None,则表示sequence序列中的每一项都为True,从而返回左右的序列元素。
sequence:必须的,表示要过滤的序列
filter函数的返回值由function_name函数的返回值决定,该函数返回所有为True的过滤项组成的序列,返回值的类型与参数sequence类型相同。例如参数sequence的类型为元组,那么返回值类型也是元组,下面介绍filter函数使用方法:
3.reduce函数
reduce函数可以实现连续处理功能,例如,对某个序列中的元素进行累加操作,语法格式如下:
reduce(function_name,sequence)
下面看一个连续相乘的例子:
4.map函数
map函数可以对多个序列中的每个元素执行相同的操作,并返回一个与输入序列长度相同的列表。
map(function_name, sequence[,sequence,....])
序列的长度可以不一样,系统会自动给短序列后面补None
注意:如果map提供了多个序列,则每个序列中的元素一一进行处理,然后将处理后的元素再组成一个序列
Python程序是由包、模块和函数三者组成,包是由一系列模块组成的集合,模块是处理某一类问题的函数和类的集合。Python提供的许多工具包和模块安装在Python的安装目录下的lib子目录中。例如,在Python安装目录下lib目录下,有一个sqlite3文件夹,该文件夹就是一个包,这个包用于完成连接sqlite3数据库的基本操作。在sqlite3文件夹下有一个test的子包,还有一个_init_.py文件,该文件是sqlite3包的注册文件,如果没有该文件,Python将不能识别sqlite3包。包必须至少包含一个_init_.py文件,该文件的内容可以为空。_init_.py用于标识当前文件夹是一个包。
''' Created on 2013-8-5 @author: Landau ''' class MyClass: 'one String' def printHello(self): 'print hello world' print 'HELLO WORLD' print MyClass.__doc__ print MyClass.printHello.__doc__ 输出结果: one String print hello world
View Code
可以看到__doc__提取了程序的字符串属性
2.4 模块的内置函数
在buildin模块中定义了许多在软件开发过程中经常用到的函数,利用这些函数可以实现数据类型的转换、数据的计算、序列的处理等功能。下面介绍内联模块中常用的函数。1.apply()函数
apply()函数可以实现调用可变参数列表的功能,把函数的参数放到一个元组或序列中。apply()函数的语法格式如下:
apply(function_name[,argslist])
该函数有三个参数:
function_name:该参数是必须的,表示自定义函数的名称
args:该参数是可选的,它是一个包含了自定义函数参数的列表和元组,如果不指定该参数,则表示被执行的函数没有任何参数
kwargs:该参数可选,它是一个字典类型的参数,字典中key值为函数的参数名称,value为实际参数的值。
def login(userName, password): msg = '' if(userName == 'admin') and (password == 'admin'): msg = 'Login Successfully' return msg else: msg = 'Login Failed' return msg print apply(login, ('admin', 'admin')) 运行结果:Login Successfully
apply函数的元组参数是有序的,本例中,元素的顺序必须与login函数的形式参数顺序一致。
2.filter函数
filter函数可以对序列做过滤处理,简单的说就是用函数来过滤一个序列,把序列的每一项传递到过滤函数。对自定义函数的参数返回的结果是否为True做过滤,并一次性返回处理结果,如果过滤函数返回的结果为False,那么该元素将从列表中删除该项。filter函数语法格式如下:
filter(function_name,sequence)
filter函数有两个参数,其中:
function_name是必须的,是自定义函数,在函数function_name中定义过滤规则,如果function_name函数的返回值为None,则表示sequence序列中的每一项都为True,从而返回左右的序列元素。
sequence:必须的,表示要过滤的序列
filter函数的返回值由function_name函数的返回值决定,该函数返回所有为True的过滤项组成的序列,返回值的类型与参数sequence类型相同。例如参数sequence的类型为元组,那么返回值类型也是元组,下面介绍filter函数使用方法:
def validate(usernames): if (len(usernames) > 4) and (len(usernames) < 20): return usernames print filter(validate, ('admin','hello', 'hel','ddfdlj')) 输出结果:('admin', 'hello', 'ddfdlj')
3.reduce函数
reduce函数可以实现连续处理功能,例如,对某个序列中的元素进行累加操作,语法格式如下:
reduce(function_name,sequence)
下面看一个连续相乘的例子:
def operat(x,y): return x*y print reduce(operat, (1,2,3,4,5,6)) print reduce(operat, (2,3,4), 5) 输出结果: 720 120
4.map函数
map函数可以对多个序列中的每个元素执行相同的操作,并返回一个与输入序列长度相同的列表。
map(function_name, sequence[,sequence,....])
序列的长度可以不一样,系统会自动给短序列后面补None
def add1(a): return a + 1 def add2(a, b): return a + b def add3(a, b, c): return a + b + c a1 = [1, 2, 3, 4, 5] a2 = [1, 2, 3, 4, 5] a3 = [1, 2, 3, 4, 5] b = map(add1, a1) print b c = map(add2, a1, a2) print c d = map(add3, a1, a2, a3) print d 输出结果: [2, 3, 4, 5, 6] [2, 4, 6, 8, 10] [3, 6, 9, 12, 15]
注意:如果map提供了多个序列,则每个序列中的元素一一进行处理,然后将处理后的元素再组成一个序列
相关文章推荐
- Python程序设计基础 函数与模块习题
- python程序设计基础4:python函数设计和使用
- python程序设计基础--函数(下)
- 廖学峰PYTHON 返回函数疑问
- python中内建函数isinstance的用法
- paip.函数方法回调机制跟java php python c++的实现
- 【Python】函数的参数对应
- Python编程第7讲—函数
- python函数参数是值传递还是引用传递(以及变量间复制后是否保持一致):取决于对象内容可变不可变
- python并行运行函数
- python 文件操作api(文件操作函数)
- python入门(13)获取函数帮助和调用函数
- 1.3.0 Python函数-理解函数
- Python 函数返回值
- Python3语法——Python3函数参数的各种形式
- Learn Python The Hard Way学习(21) - 函数可以返回信息
- Python3.2 --- Print函数用法
- Python3中条件控制、循环与函数的简易教程
- python常用函数分类整理
- Python学习(二 函数)