python之函数基础篇
2016-06-06 20:18
351 查看
【函数的定义和调用】
{按位置传参}
{按关键字传参}
*带默认值
带默认值的参数要定义在所有不带有默认值的后面,但是如果加上按关键字传参则不会报错
*可变位置参数
{可变关键字参数}
传参的参数带有表示解包,形参带有表示打包
非可变参数必须要在可变参数之前
【函数的返回值】
如果在函数中没有定义return的值,那么返回值就是None
函数返回多个值时,实际是返回一个元组
函数返回值可以是任何对象,包括函数。
python中函数递归的最大深度为1000
python中应尽量避免递归,绝大多数递归都是可以转换为迭代的,迭代要比递归快很多
【高阶函数】
函数可以作为函数的参数。像这样的函数称作高阶函数
filter(函数 or None,序列) ,这里以序列是列表为例,遍历列表,调用函数,函数返回为true的时候返回当前遍历的列表元素
map(函数,序列) 列表中的所有元素都放入函数执行一次
reduce(函数,序列) 这个函数必须为两个参数
下面截图为手工实现以上三个高阶函数的代码
{按位置传参}
def 函数名(arg1,arg2,arg3,...): ..... 函数名(object1,obj2,arg3,...)
{按关键字传参}
def 函数名(arg1,arg2,arg3,...): ..... 函数名(arg1=object1,arg3=obj2,arg2=obj3,...)
*带默认值
带默认值的参数要定义在所有不带有默认值的后面,但是如果加上按关键字传参则不会报错
def 函数名(arg1=100,arg2,arg3,...): ..... 函数名(arg1=object1,arg3=obj2,arg2=obj3,...) def 函数名(arg1,arg2,arg3=100): ..... 函数名(obj1,obj2)
*可变位置参数
def 函数名(*arg): ##arg is tuple, ....
{可变关键字参数}
传参的参数带有表示解包,形参带有表示打包
非可变参数必须要在可变参数之前
def 函数名(*arg) ... li=[1,2,3,4] 函数名(*li) def 函数名(**kwarg) ##函数中的kwargs是一个字典 ... d={'name':'tom','age':23} 函数名(**d) def func(i,j,*args): ... func(1,2,'1',"a","abc")
【函数的返回值】
如果在函数中没有定义return的值,那么返回值就是None
函数返回多个值时,实际是返回一个元组
函数返回值可以是任何对象,包括函数。
python中函数递归的最大深度为1000
python中应尽量避免递归,绝大多数递归都是可以转换为迭代的,迭代要比递归快很多
【高阶函数】
函数可以作为函数的参数。像这样的函数称作高阶函数
filter(函数 or None,序列) ,这里以序列是列表为例,遍历列表,调用函数,函数返回为true的时候返回当前遍历的列表元素
map(函数,序列) 列表中的所有元素都放入函数执行一次
reduce(函数,序列) 这个函数必须为两个参数
下面截图为手工实现以上三个高阶函数的代码
相关文章推荐
- Python With
- 自然语言处理方法---TF-IDF
- os负责程序与操作系统的交互,sys负责程序与python解释器的交互。
- Python学习2
- Python使用Pycrypto库进行RSA加密的方法详解
- Python之模块,迭代器与生成器
- layout中引用后定义的控件id不报错?
- 『Python学习』MySQL学习
- python环境安装与使用入门
- python 统计桃子的个数(猴子分桃子)
- Python第三方库的安装方法总结
- python爬虫-爬取盗墓笔记
- Python 入门学习笔记3
- python基础
- python模块和类在import上的区别
- python 大小写转换方法(全)
- Python IDE专用编辑器PyCharm下载及配置安装过程(Ubuntu环境)
- python 贪婪和非贪婪模式
- 在Python程序和Flask框架中使用SQLAlchemy的教程
- ES报错Result window is too large问题处理 推荐