服务粉丝

我们一直在努力
当前位置:首页 > 科技 >

如何理解Python中的函数?内置函数和自定义函数有何区别?

日期: 来源:python高手养成收集编辑:python高手养成

Python官方对于函数的解释是:函数是一种仅在调用时运行的代码块,您可以将数据(称为参数)传递到函数中,函数可以把数据作为结果返回。

为什么使用函数

举个例子,我们要求一个数字序列中的最大值:

当然,这里先构建一个序列(这里以列表为例)

from random import randint

lst = [randint(10, 99) for _ in range(1000)]

然后我们遍历列表求最大值

maxnum = 0

for data in lst:

if data > maxnum:

maxnum = data

print(maxnum)

问题来了,如果每次求序列的最大值,我们都要写类似上面的for、if语句吗?

当然不用,我们将这段代码封装成一段代码块。使用时,直接调用函数名即可。

这样,当我们需要返回一个数字序列最大值时,直接调用函数名即可。

不用重复制作“轮子”(内置函数)

这个标题是Python编程的精髓之一,上面的例子,Python为我们提供了更好的解决方案—内置函数。

简单来讲,内置函数就是Python为我们提供的一些拿来就用的方法。我们可以在Python控制台中输入“__builtins__”来查看Python为我们提供的内置函数、异常等。

前面我们也介绍了不少Python内置函数的使用:

map函数的用法python

Python len()函数的使用方法

Python中round函数的用法

python中input函数的用法

上面讲的这个返回数字序列最大值的案例,其实内置函数为我们提供了解决案例。

max(seq)

我们不用重复制作“轮子”了,直接使用max()函数,将序列作为参数传递即可。

这个函数会自动为我们返回序列的最大值。而且,运行速度也比我们自定义的函数要快。

函数的自定义与内置函数

从上面知道,将常用的代码以固定的格式封装(包装)成一个独立的代码块,只要知道这个代码块的名字就可以重复使用它,这个代码块称之为函数。

Python内置的函数就是一些已经写好了的,可以实现某一个固定功能的代码块,我们使用时直接调用名字,传入正确的参数即可。

不仅如此,我们还可以自定义函数:定义一个函数以关键字def开头,还得给函数取个望文知意、符合Python规范的名字。然最后,根据Python语法要求,将函数要实现的功能写出来(在日常编程中,我们往往在未实现的函数或者方法中使用pass代替其功能)。

def function_name(param....): pass

我们之前的这个求最大值的功能定义成函数就像下面这样。

一个简单的函数 ,结构如上图所示。

使用函数的好处

使用函数有很多好处

一次编写、多次调用,一定程度上节省了代码量函数实际上一段独立的代码块,代码块中的每个变量有自己的空间和生命周期,使得Python编程自由度更高当函数出现错误时,我们可以直接屏蔽该函数运行,而不至于影响其它代码。

函数中代码,不调用就不会执行。我们通常所说的模块,简单来讲就是一堆函数的集合。这样做的好处是,扩展功能的同时,不用担心运行速度问题。好了,今天的内容就到这里了,喜欢Python编程的小伙伴关注我,后续推出更加精彩的内容。

想了解更多精彩内容,快来关注python高手养成

相关阅读

  • map函数的用法python

  • Python中map函数用来根据提供的函数(通过参数提供)对指定序列做映射。本质上来讲,map函数在Python中是一个迭代器生成函数。本文详解map函数的使用方法。map函数的语法map(func
  • 一次代码评审,差点过不了试用期

  • 作者:小傅哥
    博客:https://bugstack.cn - 包含: Java 基础,面经手册,Netty4.x,手写Spring,用Java实现JVM,重学Java设计模式,SpringBoot中间件开发,IDEA插件开发,DDD系统架构项目开发,
  • 你好!我的“身份证”是370100000

  • 山东省民政厅近日公布2022年度山东省行政区划代码公告称,截至2022年12月31日,山东省共有设区的市16个;县级政区136个,其中市辖区58个、县级市26个、县52个;乡镇级政区1825个,其中
  • 你好,我是济南!我的“身份证”是370100000

  •   山东省民政厅近日公布2022年度山东省行政区划代码公告称,截至2022年12月31日,山东省共有设区的市16个;县级政区136个,其中市辖区58个、县级市26个、县52个;乡镇级政区1825个,
  • 独家 | 9个可以显著优化代码的Python内置装饰器

  • 翻译:陈之炎
    校对:赵茹萱本文约2000字,建议阅读8分钟本文介绍了精心挑选的9个函数装饰器,它将展示Python的优雅。函数装饰器有事半功倍的力量。Wallhaven 提供 图片“简胜于繁。
  • 使用TensorFlow Probability实现最大似然估计

  • 来源:DeepHub IMBA本文约2400字,建议阅读9分钟本文介绍了最大似然估计的过程,和TensorFlow Probability的实现。TensorFlow Probability是一个构建在TensorFlow之上的Python库
  • 势垒隧穿含时演化的Julia数值模拟

  • 文 | 杜炳毅 徐岩 摘 要:势垒隧穿是初等量子力学中的一个重要模型,但由于求解其波函数涉及超越方程,因此在许多初等量子力学教材中往往着重对透射系数的讲解,很少提及其波函数演

热门文章

  • OPPO k1的低价高配真实么?网友:不看不知道

  • 近日OPPO一款新机OPPO k1,摒弃了高价低配,就连自家老大哥r17都要怼一下。更是放弃了请代言人,以往的OPPO手机还没出来,各路流量小生,花样美男的代言就先来了。还有线下销售人员的
  • 一招教你手机无限制成为一台新设备

  • 大家平时用手机去注册app,肯定会遇到检测设备异常,交易关闭,等问题 这个都是手机已经不止1-2次注册过此app,不断更换手机仅是一个暂时的方法,却不是长久之计,手机总归会用完
  • 从零开始如何开网店

  • 随着互联网的高速发展,人们的生活发生了翻天覆地的变化,生活节奏越来越快,网购已经成为家家户户生活中离不开的一种购物方式了。网购的发展使得越来越多的人想要涉足电商事业,那

最新文章

  • 2022年辛集电商直播基地实现销售额1.5亿元

  • “三二一,上链接!”近日,在辛集市电商直播基地的3号直播间里,主播张静正推介着身上的新款服装。去年年底进入销售旺季,张静直播间的周销售额一直维持在五六十万元,周销量近300件。
  • 剧版《三体》:中国科幻剧的第一座高峰

  • 自《三体》宣布影视化以来,围绕选角、改编尺度、特效呈现等方面的争议就未曾停止。直到剧集播出后,一直期待的观众们,才终于可以放下心来。在豆瓣,有将近20万人为《三体》打出8.
  • 文明实践丨安宁区:新春党员阵地 守护万家团圆

  • 为进一步弘扬中华传统文化,严防辖区各类安全隐患,营造美满团圆的春节氛围,留住美好瞬间,为辖区居民送上来年美好的祝福,春节期间安宁区刘家堡街道城院社区依托小区党员阵地开展喜