资讯专栏INFORMATION COLUMN

Python 基础起步 (十) 什么叫函数?

姘搁『 / 3044人阅读

摘要:默认参数我们仍以具体的例子来说明如何定义函数的默认参数。从上面的例子可以看出,默认参数可以简化函数的调用。

Python 函数

大家好,这一期让我们来看看Python中比较核心的知识点:函数(也叫方法),那么到底什么是一个函数呢?先让我引入一个官方一点的定义:

函数是对程序逻辑进行结构化或者过程化的一种编程方法。是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。

好啦,我知道这说的不是人话,其实简单理解就是: 如果我们有一些代码可以执行一些功能,比如有100行,我们可以把这些代码打包叫做A,那么A就是一个函数,下次我们想要执行一样的功能,不用重新写100行,直接调用A就可以了。在接下来的介绍中让我们看看实际例子

内置函数,调用函数

首先,Python内置了很多有用的函数,我们可以直接调用。不需要创建。而要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs

abs(-500)
Out:500

很简单吧,只要直接调用函数名和函数需要的参数即可,再看一些其他的内置函数的例子:

type("Hello")                # 
max(10,20,30,45)             # 45
len("Hello world")           # 11

大家看到常用的type函数了吧~,还有很多都是非常好用的内置函数,大家可以自己谷歌百度一下,在实际编程中非常有效,不过要注意一点,如果参数传递错误,那就会出错:

abs(1, 5)
TypeError: abs() takes exactly one argument (2 given)

这里很好理解,abs这个内置方法只接受1个参数,这里传递了两个所以就报错了。

如何定义一个函数

我们可以自己创建函数,创建一个函数很简单,利用关键字def就可以, 之后依次写出函数名、括号、括号中的参数和冒号,最后在缩进块中编写函数体,函数的返回值用return语句返回。当然,如果不需要返回结果值,也可以不加return。我们以自定义一个求绝对值的my_abs函数为例:

def my_abs(x):
    if x >= 0:
        return x
    else:
        return -x
        

这里大家就可以发现,我们之前所学到的逻辑条件排上了用场,这里我们根据绝对值的求法写出了自己的函数,如果是正数返回函数本身,如果是负数,返回它的相反数。让我们测试一下

my_abs(-200)   
Out:200

这里需要注意几点:函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回。因此,函数内部通过条件判断和循环可以实现非常复杂的逻辑。

如果没有return语句,函数执行完毕后也会返回结果,只是结果为None

return None可以简写为return`。

函数的参数

定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了。对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解。

Python的函数定义非常简单,但灵活度却非常大。除了正常定义的必选参数外,还可以使用默认参数、可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码。

默认参数

我们仍以具体的例子来说明如何定义函数的默认参数。我们现在想写一个求平方的函数:

def power(x):
    return x * x

测试一下是否正确

power(5)
Out:25

现在,如果我们要计算 x3x3 怎么办?可以再定义一个power3函数,但是如果要计算 x4x4 、 x5x5 ……怎么办?我们不可能定义无限多个函数。你也许想到了,可以把 power(x) 修改为 power(x, n),用来计算 xn:

def power(x, n):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s

对于这个修改后的 power 函数,可以计算任意 n 次方:

power(2, 3)
Out:8

但是,旧的调用代码失败了,原因是我们增加了一个参数,导致旧的代码无法正常调用:

power(9)
TypeError: power() missing 1 required positional argument: "n"

这个时候,默认参数就排上用场了。由于我们经常计算 x2x2 ,所以,完全可以把第二个参数 n 的默认值设定为 2:

def power(x, n=2):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s

这样,当我们调用 power(5) 时,相当于调用 power(5, 2):

power(5)
Out:25

而对于 n > 2 的其他情况,就必须明确地传入 n,比如 power(5, 3)。从上面的例子可以看出,默认参数可以简化函数的调用。设置默认参数时,有几点要注意:

必选参数在前,默认参数在后,否则Python的解释器会报错(思考一下为什么默认参数不能放在必选参数前面)

如何设置默认参数

好啦,今天先为大家讲到这里,有很多复杂的方法还要大家自己去探索,

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43118.html

相关文章

  • Python 基础起步 (四) 变量是什么东西 ?

    摘要:变量是什么大家好,我回来啦,今天想为大家介绍里面一个神奇的东西变量。 变量是什么 Hello, 大家好,我回来啦,今天想为大家介绍Python里面一个神奇的东西:变量。其实这个东西真正要非常详细的解释的话要将好多,因为它至少包含以下几种类型: 全局变量 (在模块内、在所有函数外面、在class外面是全局变量) 局部变量 (在函数内、在class的方法内,未加self修饰就是局部变...

    tracy 评论0 收藏0
  • Python 基础起步 (五) 一定要知道的数据类型:初识List

    摘要:好啦,那如果我现在想要改变中一个值也很简单,因为我们了解了索引,便能很方便的定位元素啦,如果我要修改和的值为如果是删除的话可以用的自带函数叫或者注意两点如果正确删除,不会有任何反馈。没有消息就是好消息如果所删除的内容不在中,就报错。 什么是List Hello,小白同胞们,我回来啦,前面的学习中,我们已经知道了两种python的数据类型:int和str,今天将要给大家接着介绍Pytho...

    zhichangterry 评论0 收藏0
  • Python 基础起步 (三) 基础的数据类型,简单运算

    摘要:好啦,现在让我们进入主题,今天我主要想给大家说一下里的数据类型,用小白的话说就是能显示或者使用什么类型的信息,是数字,字符串,分数小数等等。 基础数据类型 大家好,经过上篇文章的讲解,相信同为小白的你已经熟悉了Jupyter Notebook 的基础操作,在此为大家总结一些常用的快捷键,能够方便大家使用: 在选中模块下方添加一个新的模块: b 在选中模块上方添加一个新的模块: a 删...

    AprilJ 评论0 收藏0
  • Python 基础起步 (八) 字典实用技巧大全,申精干货,必看!

    摘要:,同为小白的朋友们大家好,这期主要为大家带来有关字典的一些实用技巧。上篇笔记通过感人肺腑的老白让大家认识到了字典这么有用的数据类型,这一期让我们看看如何能更好的操作字典。 Hello ,同为小白的朋友们大家好,这期主要为大家带来有关字典的一些实用技巧。上篇笔记通过感人肺腑的老白让大家认识到了字典这么有用的数据类型,这一期让我们看看如何能更好的操作字典。 基础篇 下面我给大家来一个简单的...

    flybywind 评论0 收藏0
  • 如何系统地自学 Python

    摘要:这里推荐一本书源码剖析源码剖析豆瓣这本书把源码中最核心的部分,给出了详细的阐释,不过阅读此书需要对语言内存模型和指针有着很好的理解。   是否非常想学好 Python,一方面被琐事纠缠,一直没能动手,另一方面,担心学习成本太高,心里默默敲着退堂鼓?   幸运的是,Python 是一门初学者友好的编程语言,想要完全掌握它,你不必花上太多的时间和精力。   Python 的设计哲学之一就是...

    zgbgx 评论0 收藏0

发表评论

0条评论

姘搁『

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<