fun函数python_Python函数-程序员宅基地

技术标签: fun函数python  

Python函数

一般函数定义方式

def sum(a, b): return a+b

##返回a与b的和1

2

3

一些概念与特性

嵌套

Python的函数是可以嵌套定义的

def Fun1(): print("Runing Fun1...") def Fun2(): print("Runing Fun2...") Fun2()1

2

3

4

5

但是要注意在内部定义就只能在内部使用,超出函数范围不能再调用Fun2,只能通过Fun1来调用Fun2

当尝试在外部调用Fun2时会报错

例如

def Fun1(): print("Runing Fun1...") def Fun2(): print("Runing Fun2...")

Fun2()1

2

3

4

5

此时Python解释器会报错

闭包

闭包的定义:闭包就是能够读取其他函数内部变量的函数。

由这个定义我们可以知道上例中Fun2算得上是一个闭包,不过一般不称之为闭包,因为它并未读取Fun1的内部变量。

闭包示例:

def Fun1(x): def Fun2(y): return x*y return Fun2();

##调用

Fun1(2)(3)1

2

3

4

5

6

以上可以称为闭包

解释:Fun1会返回一个函数,其实就是返回的Fun2,它需要传递一个参数,来进行后续操作,所以Fun(2)(3)>相当于是把两个参数同时传入经行乘积。

但是Fun2是不能改变Fun1里面的值

例如:

def Fun1(): x = 5 def Fun2(): x *= x return x return Fun2()1

2

3

4

5

6

上述代码会报错。

在早期,程序员们对于这种问题的解决方案是用容器类型来处理,因为容器类型不会存放在栈里,不会被屏蔽,例如上述问题可以用列表来解决。

def Fun1(): x = [5] def Fun2(): x[0] *= x[0] return x[0] return Fun2()1

2

3

4

5

6

后来在一次Python更新中解决了这个问题,使用nonlocal修饰即可

def Fun1(): nonlocal x = 5 def Fun2(): x *= x return x return Fun2()1

2

3

4

5

6

lambda表达式

概念

没什么具体定义,就相当于是一个没有名字的匿名函数,用Python实现比Java简单一点

格式

一般这样定义

lambda x, y : x + y1

最基本的使用

fun = lambda x, y : x + y

fun(2, 3)1

2

与两个过滤器一起使用

Filter

Filter的用法大概是这样

filter(fun, 可迭代序列)1

然后它就会迭代第二个参数的每一个元素,将它们放入第一个参数里面计算,得到的值是真就保留该元素,是假就将其过滤。

示例

filter(lambda x : x % 2, range(20))1

就可以立刻过滤出由0到19的所有奇数。

Map

Map的用法

map(lambda x : x % 2, range(20))1

map会把列表(可迭代序列)里面所有的值拿出来进行前面所给的函数操作,返回一个容器。

list(map(lambda x : x%2, range(20)))1

就会把所有的偶数变为0,奇数变为1。

上述的两个过滤器都不改变原来可迭代序列,而是返回一个新的容器

递归

概念

程序调用自身的编程技巧称为递归

基本的求和

def mysum(x): if x != 0: return x + mysum(x-1) else: return x

##求前x项的和1

2

3

4

5

6

斐波拉契数列

def Feb(x-1): if x== 1 or x == 0: return x else: return feb(x-1)+feb(x-2)

#求斐波拉契数列的第x项(从第一项开始!)1

2

3

4

5

6

写函数文档

当你在不知道python里面某一个函数的作用时,比如说你不知道max函数的作用,可以输入help(max)来获取相关信息,这些信息就是max函数的函数文档内容,它的编写方式如下。

def FunDoc(): '''这是FunDoc函数的函数文档''' print(FunDoc Run...)

help(FunDoc)1

2

3

4

5

运行结果如下

FunDoc()

这是FunDoc函数的函数文档1

2

函数文档相当于是属于一个函数的专有注释。

文章来源: blog.csdn.net,作者:Sout xza,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/ooblack/article/details/112439693

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_35701747/article/details/114170410

智能推荐

优思学院:质量管理7原则、8大要点_组织需要管理其与有关的 的关系-程序员宅基地

文章浏览阅读98次。在质量管理的道路上,没有捷径可循。质量管理是一项需要不断积累经验和智慧的长期过程,其中涵盖了七大关键原则,这些原则是组织在质量管理方面取得持续成功的基石。_组织需要管理其与有关的 的关系

friendly java_关于Java的权限修饰符(public,private,protected,默认friendly)-程序员宅基地

文章浏览阅读538次。以前对访问修饰符总是模棱两可,让自己仔细解释也是经常说不很清楚.这次要彻底的搞清楚.现在总结如下:一.概括总结 各个访问修饰符对不同包及其子类,非子类的访问权限Java访问权限修饰符包含四个:public,protected,friendly,private;但是,friendly在java中并没有显示的声明,成员变量和方法默认情况下就是friendly权限。现在把它们的访问权限表示出来:(目前展..._访问修饰符friendly

c++ timer-程序员宅基地

文章浏览阅读442次。https://www.cnblogs.com/yunlambert/p/10226468.html#include <iostream>#include <thread>#include <chrono>#include<functional>using namespace std;class Timer { bool clear = false;public: template<typename T> void set_c++ timer

数据结构_顺序查找(C语言)_数据结构顺序查找c语言代码-程序员宅基地

文章浏览阅读1.4w次,点赞29次,收藏172次。从表的一端开始,依次将表中的关键字和给定的值进行比较,若表中的关键字和给定的值相等,则查找成功,反之查找失败。_数据结构顺序查找c语言代码

如何打开虚拟机服务器,虚拟机怎么打开ssh服务器-程序员宅基地

文章浏览阅读1.1k次。虚拟机怎么打开ssh服务器 内容精选换一换本手册介绍如何安装Mind Studio以及安装过程中的故障处理方法。Mind Studio只能安装在Ubuntu服务器上,可以在Ubuntu服务器上使用原生桌面自带的终端gnome-terminal进行安装,也可以在Windows服务器上通过SSH登录到Ubuntu服务器进行安装,因为Mind Studio是一款GUI程序,所以在Win本节操作介绍在Wi..._虚拟机如何进入ssh

【雕爷学编程】Arduino 手册之三角函数 sin()_arduino sin-程序员宅基地

文章浏览阅读928次,点赞3次,收藏11次。sin() 是 Arduino 数学库中的一个函数,它的作用是计算一个角度的正弦值。Arduino 2005 年时面世,作为意大利伊夫雷亚地区伊夫雷亚互动设计研究所的学生设计,目的是为新手和专业人员提供一种低成本且简单的方法,以建立使用传感器与环境相互作用的装置。可以使用 sin() 函数和反正弦函数 asin() 来计算每秒钟物体沿着圆周移动的弧长对应的弧度值,然后除以 PI 得到相对于圆心的角度变化。在使用sin()函数计算角度的正弦值时,确保输入的角度值在正确的范围内。_arduino sin

随便推点

哈工大操作系统实验三(整理自用)-程序员宅基地

文章浏览阅读1.2k次。整理自用,有误烦请指正_操作系统实验三

虚拟声卡(虚拟扬声器和虚拟麦克风)应用之音频回环(Virtual Audio Cable)-程序员宅基地

文章浏览阅读1.9k次,点赞22次,收藏29次。首先在了解Virtual Audio Cable音频回环技术之前,我们先介绍几个基础的概念:虚拟声卡:是一种硬件虚拟化技术;基于软件技术虚拟出麦克风或者虚拟扬声器硬件,提供给上层用户程序使用虚拟麦克风和扬声器,例如通过给虚拟扬声器喂送音频数据实现麦克风录音效果。音频回环:跟我们网络通信的回环地址(127.0.0.1)通信一样;所谓的音频回环是内核驱动层直接将麦克风/扬声器的声音直接提交给扬声器/麦克风,可以达到数据硬件层的直接转发的功能。_virtual audio cable

python飞机大战源代码-python飞机大战源码和素材-程序员宅基地

文章浏览阅读965次。1 importpygame2 from plane_sprites import *345 classPlaneGame(object):6 """飞机大战主游戏"""78 def __init__(self):9 print("游戏初始化")1011 #1.创建游戏的..._python飞机大战源代码

eNSP配置OSPF实验_ospf enable 1 area 0.0.0.0-程序员宅基地

文章浏览阅读1.4k次,点赞2次,收藏22次。实验工具eNSP (AR1220)实验拓扑配置PC110.1.1.2255.255.255.010.1.1.1PC210.1.4.2255.255.255.010.1.4.1R4undo terminal monitor #配置前最好关掉这个终端监控,否则一直弹信息影响操作syssysname R4interface LoopBack0 ip address 10.1.127.1 255.255.255.255 router id _ospf enable 1 area 0.0.0.0

Android wear 2.0发布,完全体 Android Wear 2.0发布-程序员宅基地

文章浏览阅读125次。原标题:完全体 Android Wear 2.0发布 在北京时间今天凌晨的谷歌I/O大会上,谷歌推出了其可穿戴设备操作系统Android Wear的2.0版本,该版本之中最大的特色为允许智能手表脱离智能手机独立运行。在本次Android Wear 2.0更新之中,智能手表将可以通过蓝牙、Wi-Fi甚至移动网络(只要硬件上支持)直接和互联网传输信息,同时此特性也将允许使用Android Wear智能..._android headlines, report: android wear 2.0 will bring android pay to ios.

pyChram导入xlrd库操作xlsx文件报错,解决办法_pycham不支持xlsx-程序员宅基地

文章浏览阅读435次。首先需要命令行输入pip uninstall xlrd 卸载新版本的xlrd,然后输入pip uninstall xlrd==1.2.0,指定安装1.2.0版本的xlrd。pyChram导入xlrd库操作xlsx文件报错:xlrd.biffh.XLRDError: Excel xlsx file;原因是:新版本(2.0.1)的xlrd因安全问题不支持xlsx格式,可以降低xlrd的版本。_pycham不支持xlsx