Python学习笔记(4)——函数

函数

一、函数的定义和调用
函数是一个能完成特定功能的代码块,可在程序中重复使用,减少程序的代码量和提高程序的执行效率。
函数的定义:
Python学习笔记(4)——函数
---返回值不是必须的,如果没有return语句,则Python默认返回值None 
Python学习笔记(4)——函数
--参数列表可以由多个、一个或零个参数组成。
--圆括号是必不可少的,即使没有参数也不能没有它;不要忘记圆括号后面的冒号。
--函数体一定要注意缩进。
--“形参”和“实参”。
--return语句的作用是结束函数调用,可以出现在函数体的任意位置。

二、调用函数的形式
Python学习笔记(4)——函数
三、函数的参数
--在定义函数时,我们可以用赋值符号给某些形参指定默认值,这样当调用该函数的时候,如果调用方没有为该参数提供值的话,则使用默认值。
--如果调用该函数的时候为该参数提供了值的话,则使用调用方提供的值——像这样的参数我们称之为缺省参数
--默认参数必须在所有标准参数之后定义

Python学习笔记(4)——函数
--需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数。加了星号(*)的变量名会存放所有未命名的变量参数。
Python学习笔记(4)——函数
attention:
1、在一个函数中对参数名赋值不影响调用者。 
2、在一个函数中改变一个可变的对象参数会影响调用者,如列表,字典,数组等。

Python学习笔记(4)——函数
3、参数是对象指针,无需定义传递的对象类型。

四、匿名函数
1、用lambda关键词能创建小型匿名函数。
2、Lambda函数能接收任何数量的参数但只能返回一个表达式的值
3、
匿名函数不能直接调用print,因为lambda需要一个表达式。
4、lambda函数拥有自己的名字空间,且不能访问自有参数列表之外或全局名字空间里的参数。
Python学习笔记(4)——函数
example
Python学习笔记(4)——函数
五、局部变量和全局变量
1、在一个函数中定义的变量一般只能在该函数内部使用,这些只能在程序的特定部分使用的变量我们称之为局部变量
2、在一个文件顶部定义的变量可以供该文件中的任何函数调用,这些可以为整个程序所使用的变量称为全局变量。 
3、如想在局部作用域中改变全局作用域的对象,必须使用global关键字。


六、函数的注释说明—文档字符串
在函数定义后紧跟的字符串会被认为是函数的说明,使用help(函数名)可显示出来。
Python学习笔记(4)——函数
Python学习笔记(4)——函数
七、常用函数
--abs(x):abs()返回一个数字的绝对值。如果给出复数,返回值就是该复数的模。

--callable(object):callable()函数用于测试对象是否可调用,如果可以则返回1(真);否则返回0(假)。可调用对象包括函数、方法、代码对象、类和已经定义了“调用”方法的类实例。
 

--cmp(x,y) :cmp()函数比较x和y两个对象,并根据比较结果返回一个整数,如果x<y,则返回-1;如果x>y,则返回1,如果x==y则返回0。

--isinstance(object,class-or-type-or-tuple) -> bool测试对象类型 isinstance(a,str)  


--divmod(x,y): divmod(x,y)函数完成除法运算,返回商和余数。 

--pow(x,y[,z]) :pow()函数返回以x为底,y为指数的。如果给出z值,该函数就计算x的y次幂值被z取模的值。 

--len(object) -> integer :len()函数返回字符串和序列的长度

--min(x[,y,z...]) :返回序列或参数的最小值

--max(x[,y,z...]) :返回序列或参数的最大值

--range([lower,]stop[,step]) :range()函数可按参数生成连续的有序整数列表。 

--round(x[,n]) :round()函数返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。 

--type(obj):type()函数可返回对象的数据类型。 

--xrange([lower,]stop[,step]):xrange()函数与range()类似,但xrnage()并不创建列表,而是返回一个xrange对象,它的行为与列表相似,但是只在需要时才计算列表值,当列表很大时,这个特性能节省内存。 


八、类型转换函数
数值型
float(x) :把一个数字或字符串转换成浮点数。 

hex(x) :把整数转换成十六进制数。 

oct(x) :把整数转换成八进制数。 

int(x[,base]) :把数字和字符串转换成一个整数,base为可选的基数。

complex(real[,imaginary]) :complex()函数可把字符串或数字转换为复数。 
eg:complex(“2+1j”) 、 complex(2,1)

long(x[,base]) long()函数把数字和字符串转换成长整数,base为可选的基数。


字符串
chr(i):chr()函数返回ASCII码对应的字符串

ord(x):ord()函数返回一个字符串参数的ASCII码或Unicode值 。

str(obj):str()函数把对象转换成可打印字符串。 


序列对象
list(x) :list()函数可将序列对象转换成列表 

tuple(x): tuple()函数把序列对象转换成tuple 


九、序列操作函数
常用函数中的len()、max()和min()同样可用于序列. 

filter(function,list):调用filter()时,它会把一个函数应用于序列中的每个项,并返回该函数返回真值时的所有项,从而过滤掉返回假值的所有项。

map(function,list[,list]):map()函数把一个函数应用于序列中所有项,并返回一个列表。 
Python学习笔记(4)——函数
reduce(function,seq[,init]) :reduce()函数获得序列中前两个项,并把它传递给提供的函数,获得结果后再取序列中的下一项,连同结果再传递给函数,以此类推,直到处理完所有项为止。  
Python学习笔记(4)——函数
zip(seq[,seq,...]) :zip()函数可把两个或多个序列中的相应项合并在一起,并以元组的格式返回它们,在处理完最短序列中的所有项后就停止。 
举例参考:https://www.cnblogs.com/frydsh/archive/2012/07/10/2585370.html

参考资料
中国科学院大学张老师讲授的《Python科学计算与数据处理》ppt