我的Python3学习笔记(2):python函数式编程

python函数式编程 大家好,这里还还还是长弓 今天我们来讲讲python中的函数式编程 函数式编程 有些同学疑惑了,我们已经学了函数,为什么还要学这个函数式编程呢? 两者的区别是什么呢? 函数是一个语法,函数式编程是一种编程的思路 是将本是CPU加减乘除的过程封装成一个个函数,调用函数的过程,更整体,更人性 函数式编程允许传入一个函数作为函数... 阅读详情

函数式编程

深拷贝

>>>from copy import deepcopy
>>>d = {}
>>>d['names'] = ['Alfred', 'Bertrand']
>>>c = d.copy()
>>>dc = deepcopy(d)
>>>d['names'].append('Clive')
>>>c
{'names':['Alfred', 'Bertrand', 'Clive']}
>>>dc
{'names': ['Alfred','Bertrand']}


简单函数定义

deffibs(num):
       result = [0, 1]
       for i in range(num-2):
              result.append(result[-2] +result[-1])
              return result

文档字符串

在函数的定义def后面使用''来定义一个文档字符串,这样可以在存续中访问。

定义:

defsquare(x):
              'Calculates the square of thenumber x.'
              return x*x

 

使用:

square.__doc__

或者使用help函数。

help(square)

多参数

多参数的时候可以传递0个或则多个值给函数。

元组

defprint_params_2(title, *params):
       print title
       print params

 

使用

>>>print_params_2('Params:', 1, 2, 3)

Params:

(1,2, 3)

可以看到就不用其他的数据结构才能传递参数了。

字典

defprint_params_4(x, y, z=3, *pospar, **keypar):
       print x, y, z
       print pospar
       print keypar

 

使用

>>>print_params_4(1, 2, 3, 5, 6, 7, foo=1, bar=2)

1 23

(5,6, 7)

{'foo':1, 'bar': 2}

参数反转

使用*和**可以把多个参数打包成一个数据结构;如果把这个符号作用于字典和元组的时候也可以得到相反的效果。

1,反转一个元组可以用来传递参数。

defadd(x, y): return x + y

>>>add(*params)

3

2,反转一个字典也可以用来给一噶函数传递参数,只是字典的键会自动变成函数的参数名。也就是不起作用。

生成器

一个生成器就是一个特殊的函数,每次调用它都会放回下一个数字。事实上生成器表现的想一个迭代器,只不过这儿的迭代器的对象是一个函数。

 

例如:

nested= [[1, 2], [3, 4], [5]]
defflatten(nested):
       for sublist in nested:
              for element in sublist:
                     yield element
>>>nested = [[1, 2], [3, 4], [5]]
>>>for num in flatten(nested):
printnum
...
1
2
3
4
5


 

注意:生成器函数已经有默认的返回值——生成器了,你不能再另外给一个返回值;对,即使是return None也不行。但是它可以使用空的return语句结束。

函数式编程特性

关键字参数

在参数传递的时候可以使用函数定义时的参数名。

defhello_1(greeting, name):
print'%s, %s!' % (greeting, name)
 
这时候参数的顺序就不成问题了。
>>>hello_1(greeting='Hello', name='world')
Hello,world!
另一个:
>>>hello_1(name='world', greeting='Hello')
Hello, world!


默认参数
闭包

Python中可以在函数中声明另外一个函数并且返回,这个比起Ruby来说更加自然一点。因为在Ruby中必须用匿名函数来实现这个特性。

defmultiplier(factor):
       def multiplyByFactor(number):
              return number*factor
       return multiplyByFactor

【Python】函数式编程2 在软件开发中,我们常常面临一个挑战:如何让业务专家或非程序员能够以更自然、更直观的方式表达他们的需求或定义复杂的规则。传统的命令式代码往往过于详细和技术化,难以被领域专家理解或修改。而**领域特定语言(Domain Specific Languages, DSLs)**正是为了解决这个问题而生。DSLs 是一种专门为特定应用领域设计的计算机语言。与通用编程语言(如Python、Java)不同,DSLs 的语法和语义都围绕着一个特定的领域概念进行设计,使得在该领域内的问题表达变得更加简洁、直观和高效。DSLs 阅读详情

相关推荐

【Python】函数式编程

函数式编程(Functional Programming, FP)并非一种全新的编程语言,而是一种编程范式,一种思考和构造程序的方式。它根植于数学中的函数概念,强调程序的执行过程应如同数学函数的求值,避免状态的改变和可变数据。要真正掌握Python中的函数式编程,我们必须首先从其最底层的基石和核心哲学开始理解。在深入理解函数式编程之前,我们有必要先明确“编程范式”(Programming Paradigm)这一概念。编程范式是指一种编写代码和组织程序思想的“风格”或“方法论”。它提供了一套原则和结构,指导开

宅男很神经 1375

Python3 函数式编程

  函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的,输出就是确定的,这种纯函数我们称之为没有副作用。而允许使用变量的程序设计语言,由于函数内部的变量状态不确定,同样的输入,可能得到不同的输出,因此,这种函数是有副作用的。   函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数! 变量可以...

weixin_30737363的博客 193

【无标题】ReaxFF拟合参数以及算法安装

ReaxFF拟合参数以及算法安装

zmzyzm的博客 1419

Python3的函数式编程

参考:https://coolshell.cn/articles/10822.html https://www.imooc.com/learn/317 用过python的闭包,装饰器,map,reduce,filter等函数,也知道可以把一个函数作为一个变量进行赋值,传递;但是还不知道这些都属于函数式编程的范畴,也一直以为这些都是理所当然的,当然,去区分我们写的程序是函数...

lincoco49的博客 670

python爬取淘宝数据

python爬取淘宝数据淘宝评论 淘宝评论 打开淘宝,选择打开需要爬取的商品的评论。在谷歌浏览器选择开发者工具,选择network,找到list_detail_rate.htm?itemId=624466733121,点击headers、previews,可以看见相应的评论数据。 爬取一页屏评论代码如下 import re import requests headers = { 'Referer': '在headers中', 'User-Agent': '在

qq_36333776的博客 5797

子网划分详解

还不会子网划分?看这篇就够了,保姆级教程

m0_47584619的博客 6093

Python函数式编程

把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式。def add(x,y,f): return f(x)+f(y) print(add(-5,6,abs))map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。#map def f(x): return x*x

qq_35510981的博客 353

Transformers 实战修炼与源码剖析专栏大纲

本专栏以 Hugging Face Transformers 为主线,围绕“能用、会调、敢上线、懂源码”四个目标展开。内容不把理论堆成公式墙,而是用真实或拟真的业务场景驱动:客服分类、合同抽取、知识库问答、模型微调、推理服务、监控告警、源码扩展等。采用“业务痛点 → 三人剧本对话 → 代码实战 → 总结思考”的四段式结构,让读者在动手完成一个个小项目的过程中,逐步理解 Tokenizer、Model、Pipeline、Trainer、Generation、PEFT、Accelerate、Serving等概念

davidwang456的专栏 922

python中factor函数_Python学习(九)--[进阶]函数

闭包Python的函数时可以嵌套的,可以将一个函数放在另外一个里面。defmultiplier(factor):defmultiplyByFactor(number):return number*factorreturn multiplyByFactor调用multiplier()时,返回的是里层函数,也就是说函数本身被返回了,但并没有被调用。重要的是返回的函数还可以访问它的定义所在的作用域。在一...

weixin_39610594的博客 607

运维颠覆!一文解锁AI赋能运维实战秘籍,效率飙升!

将AI应用于运维工作是一场极具价值的变革,从故障预测与诊断到自动化任务执行,再到资源管理优化,AI都展现出巨大潜力。尽管在实践过程中会面临数据质量、模型复杂性等挑战,但通过合理的技术选型和解决方案,我们能够充分挖掘AI的优势,实现运维工作的高效、智能转型。持续探索和创新AI在运维领域的应用,将为企业的数字化发展提供坚实保障。在科技飞速发展的当下,运维领域正经历着深刻变革,AI的融入成为提升运维效率与质量的关键。本文将深入实战,带你领略AI如何在运维各环节大显身手,让你的运维工作开启智能高效新模式。

探索云原生与智能化驱动下的安全运维新范式。关注DevSecOps、可观测性、AIOps等前沿领域,与您共赴技术前沿。 401

UNet改进(23):如何用SLCAM模块提升UNet的分割性能

本文提出一种改进的UNet架构,通过引入轻量化注意力模块(SLCAM)增强医学图像分割性能。SLCAM整合了通道和空间双重注意力机制:通道注意力采用全局池化和共享MLP学习通道权重,空间注意力通过7×7卷积捕捉上下文信息。网络在传统UNet基础上,在每个下采样和上采样块后加入SLCAM模块,并保持跳跃连接结构。实验表明,该方法能自适应聚焦重要特征,在不显著增加计算负担的情况下提升分割精度,特别适用于医学图像等需精确边界的场景。未来可探索三维注意力、动态参数调整等改进方向。

2501_91516851的博客 438

Python基础教程(第2版)第六章 抽象

Python基础教程(第2版)第六章 抽象

41634454的博客 337

【图像去噪】论文复现:灵感源自MAE!进一步解决BSN的局限性,破坏真实噪声的空间相关性!AMSNet的Pytorch源码复现,跑通源码,原理详解!

论文题目:Asymmetric Mask Scheme for Self-Supervised Real Image Denoising —— 自监督真实图像去噪的非对称掩码方案【图像去噪】论文精读:Asymmetric Mask Scheme for Self-Supervised Real Image Denoising(AMSNet)AMSNet是基于PyTorch Lightning CLI深度学习框架编写的,比较适合复杂的大型任务,复用很方便,但是安装和环境配置问题太多。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 546

Python3: 函数式编程特性

函数式编程就像是用乐高积木搭建程序:每个函数都是一个小积木,我们通过组合这些积木来构建复杂的结构,而不是改变它们的形状。函数式编程是一种编程范式,它将计算视为数学函数的求值,并避免改变状态和可变数据。函数是"一等公民"(可以像普通变量一样被传递和使用)强调"不可变性"(避免修改已有数据)追求"纯函数"(相同输入总是产生相同输出,没有副作用)喜欢"声明式"而非"命令式"(描述"做什么"而非"怎么做")

weixin_45705239的博客 748

系统安装(kuntaiR522 kvm安装)

鲲泰R522服务器kvm安装rocky

weixin_46396917的博客 1820

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

70、Python之函数式编程:一文搞懂函数式编程的核心概念

本文首先简单介绍了编程范式的概念,然后梳理了编程语言与编程范式的关系。在此基础上,引入了函数式编程这一范式,着重介绍了为什么要学习函数式编程。最后,系统梳理了函数式编程的核心概念,从而对后续学习函数式编程有一个纲领性的了解。

南宫理的日知录 1486

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Python 函数式编程:简洁、优雅、高效的编程范式

函数式编程是一种强大的编程范式,它可以帮助我们写出更简洁、更优雅、更高效的代码。Python 对函数式编程提供了良好的支持,我们可以利用 Python 的内置函数和工具库来实践函数式编程。

YPY15947274155的博客 1570

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Python 高级教程之函数式编程

Python 函数是一组相关语句,旨在执行计算、逻辑或评估任务。这个想法是将一些常见或重复完成的任务放在一起并创建一个函数,这样我们就可以一次又一次地为不同的输入编写相同的代码,而不是一次又一次地调用函数来重用其中包含的代码。

努力是为了站在万人之中,成为别人的光 4232

Python函数式编程指南

函数式编程是一种编程范式,强调使用纯函数和不可变数据结构。Python虽然不是一种纯粹的函数式编程语言,但它提供了足够的工具和支持,使得我们可以在Python中实现函数式编程的风格。函数式编程的好处包括代码更加清晰、易于测试以及更容易进行并行化处理。接下来,我们将探讨几个Python函数式编程的关键概念,并通过实际的例子来加深理解。

master_chenchen的博客 1190

【Python入门学习笔记】四、函数式编程

第四章 函数式编程 文章目录第四章 函数式编程4.1 什么是函数式编程4.1.1 定义4.1.2 特点① 函数是"第一等公民"② 只用"表达式",不用"语句"③ 没有"副作用"④ 不修改状态⑤ 引用透明4.1.3 好处① 代码简洁,开发快速② 接近自然语言,易于理解③ 更方便的代码管理④ 易于"并发编程"⑤ 代码的热升级4.2 高阶函数4.2.1 map/reduce① map② reduce4.2.2 filter① 用 filter 求素数4.2.3 sorted① 排序算法4.3 返回函数4.3.1

EnjoyToShare | 资源分享平台 1175

Python函数式编程进阶

ddd

临渊-测试开发 1302

Python:函数式编程

函数式编程(Functional Programming, FP)是一种编程范式,强调通过纯函数、不可变数据和声明式风格来构建程序。Python 虽然不是纯函数式语言,但提供了丰富的函数式编程工具。

永远怀着至诚之心拥抱世界 1235

Python学习笔记:Python函数式编程

Python学习笔记:Python函数式编程 学自廖雪峰巨佬的Python3教程:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014317848428125ae6aa24068b4c50a7e71501ab275d52000 1.我们通过把大段代码拆成函数,通过一层一层...

lrxcmwy2的博客 690
上一篇: 我的Python3学习笔记(1):python基础
下一篇: 我的Python3学习笔记(3):面向对象
ssjssh
博客等级 码龄15年 12粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值