您的位置:首页 > 其它

(05)函数

2016-02-18 10:30 369 查看
-----------
更新时间:
17:34 2016-03-03 星期四
-----------
文件头通用写法
#!/usr/bin/python
#conding:utf8

■ 函数定义
● 定义 def 函数名(参数列表) 如 def fun(x,y..) 取的名字不要保留关键字冲突
● 调用 函数 fun(1,2) 函数定义了,要调用才会执行里面的代码

■ 函数参数
● 形参 在定义函数时,后面的参数列表,为形参 def fun(x,y..) x,y 这些为形参
● 实参 在调用函数时,后面的参数列表,为实参 fun(1,2) 1,2 这些为实参
● 给定实参时,数目要和形式的数目一致,传什么类型没有规定
● 默认参数,在形参时指定,必须是从右开始指定,否则就要调整参数列表的顺序
def machine(x=3,y) 不合法 def machine(x,y='合法')

■ 函数相关变量的作用域
● 局部变量 ,在函数定义的变量为局部变量,只能供给函数本身使用,外部不可见
● 全局变量, 除了在函数里定义的变量外,都是全局变量,可以供后面的代码段和函数使用
● 函数内声明为全局变量 用关键词 global ,声明后,后面的代码段都可以使用

■ 函数返回值
● 没有 return时,默认返回为None
● 函数返回值 ,是通retrun 返回语句
● 函数可以返回任何类型的值 ,数值、字符串,列表,....
● 函数调用retrun, 函数就会相应的结束,retrun 后面的代码不执行

■ 函数的其它应用
● 多类型传值
◆ 向函数传列表、元组、字典
保证好形参和实参数目的一致,传一个列表,元组,字典都是一个整体,相当于一个实参,
元组做为实参,给函数,要告诉是元组 在元组变量前面加 “*” 如 fun(*t)
字典做为实参,给函数,要告诉是字典 在字典变量前面加 “**”如 fun(**d) 形参和字典的键要一 一对应
若没有对应,就要分别取字典的键对应的值

● 处理多余的参数
在定义形参数时,后台定义一个可接收的元组 如 def fun(x,*args) 这样就可以传多个值 fun(8,3,3,4)
在定义形参数时,后台定义一个可接收的元组 和 字典 如 def fun(x,*args,**kwargs) 这样就可以传多个值 fun(8,3,name=toby)

■ lambda表达式 (构建的是一个对象)
● 匿名函数 (主要用在,执行脚本、一次函数、只有一行的函数)
g=lambda x,y:x*y 定义:定义了x,y变量,做了一件 x*y
g(2,3) 调用
阶乘 lambda 简化代码
l=rang(1,6)
reduce(lambda x,y:x*y,l) reduce是取列表中每两个值作用于前面的函数

■ 内置函数
● python 自己有许多内置函数,尽量使用,性能较高,不要自己发明轮子,自己定义,可以帮助文档查看
命令行可以用 help(命令) 查用法
● 常用函数列举: abs()-绝对值 max()-最大值 min()-最小值
len()-长度 divmod()-除法结果(商和模) pow()-幂运算 round()-返回浮点数
callable()-判断前面有没有定义过某过函数 isinstance()-判断对象的类型 cmp() 比较两个字符串
rang()-用来快速形成一个序列 xrang()- 效率会比 rang()高 type()-得到变量的类型
int() long() float() complex() str() list() truple() hex() oct() chr() ord() -类型转换
● 字符串函数:str.capitalize() str.replace() str.split() filter() zip() map() reduce()... 帮肋文档查看

* 文件入口
if __name__=="__main__":

* 递归
>>> def newsum(mylist):
... if not mylist:
... return 0
... else:
... return mylist[0]+newsum(mylist[1:])
...
>>>
>>> newsum(range(1,6))
Out[5]: 15
>>> newsum(range(1,101))
Out[6]: 5050

* 函数是对象
这样也可以多个引用
>>> sec_newsum=newsum
>>> sec_newsum(range(1,101))
Out[8]: 5050
相当于多加一个指针引用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: