python学习笔记之五:函数初体验
发布日期:2021-06-30 10:12:19
浏览次数:2
分类:技术文章
本文共 1636 字,大约阅读时间需要 5 分钟。
使用python编程不可能只停留在一行一行输入的感觉。python感觉使用C/C++的思路是很好理解的。函数就是面向过程的主要部分,而python的函数怎么使用呢?
函数
def add(x,y): return x+ya = add(1,2)b = add("1","2")print(a,b)
结果是3,"12"。这就是普通的python函数,由于其变量的灵活性,C++的重载直接就简简单单了。格式需要特别注意4个空格或者是tab键,很容易报错,毕竟没有大括号{},想要简单就得付出代价。
高阶函数
什么是高阶函数?统统搞不清,但感觉就是函数指针啊!可以使用一个变量直接赋值函数名,调用函数的方法,而且定义时的函数名竟然可以再被赋值,不再指向原来的函数,感觉好变态,这样会不会容易出错啊。
def add(x,y): return x+yf = add #这个感觉就是函数指针,将f指向函数的开头print(f(1,3)) #可以add = 1print(add) #python可以进行将函数名重新赋值的变态操作!一切皆对象?!print(f(1,3)) #当然还是可以使用的
上面只是函数指针的初级调用,函数指针也可以当参数是肯定的。
def add(x,y): return x+ydef dec(x,y): return x-y def show(x,y,fuc): return fuc(x,y)print(show(1,2,add))print(show(1,2,dec))
结果是3 -1.是正常操作,使用起来确实方便。本来应该就这些的,但是看廖雪峰的python教程还有一些有趣的高阶函数的使用方法,感觉是很有用,你直接去看他的吧。我只是学习写写自己的感悟。
下面介绍几个使用高阶函数这一个特性的方法:
map(对一个参数直接作用),reduce(对两个参数直接作用),filter(过滤),sorted(排序)。
num = [1,2,3,4,5,6,7,8,9,10]def mapfunc(x): return x *2r = map(mapfunc,num)print(r) #直接打印会给地址。print(list(r)) #这样可以打印出来。是将每个值进行了乘以2的结果def reducefunc(x,y): return x+yfrom functools import reducer = reduce(reducefunc,num) #相当于reducefunc(((1,2),3),4...)print(r)def filterfunc(x): if x%2 == 0: return Truer = filter(filterfunc,num) #将返回是true的留下来!过滤作用。print(list(r))num1 = [4,5,-63,2,1,-7,8,-9,0]print(sorted(num1)) #正常排序,默认keyprint(sorted(num1,key=abs)) #传入key参数abs取绝对值后排序def keyfunc(x): if x >0: return -x else: return xprint(sorted(num1,key=keyfunc)) #传入自定义key参数取返回值排序
结果:
总结:
整体体验下来感觉的到,python的高阶函数使用特别的灵活,好像是把十分厉害的大炮,零件都有了,会玩的能玩的很好,不会玩的就很丑了,我确信高阶函数一定有很多妙用!
转载地址:https://islet.blog.csdn.net/article/details/79790066 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月07日 00时02分36秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【python3学习笔记】斜杠和双斜杠运算符的区别
2019-04-30
【深度学习笔记】用torch.nn.Sequential()搭建神经网络模型
2019-04-30
【深度学习笔记】用torch.nn.ModuleList搭建神经网络
2019-04-30
【深度学习笔记】pytorch的点乘(dot product)
2019-04-30
【深度学习笔记】残差
2019-04-30
【python学习笔记】读取指定文件夹中的图片,结合边缘保留滤波EPF
2019-04-30
【工具和环境】Linux下安装pycharm
2019-04-30
【Accumulation】The definition of SISR
2019-04-30
【工具与环境】Windows下安装Sublime Text 3
2019-04-30
【工具与环境】Excel中批量插入行
2019-04-30
【个人实验注意事项】
2019-04-30