关于python中函数的浅议

  • 函数的本质是接收一些参数,对参数进行特定规则的处理,最终输出一些结果。
    python中的函数能够帮助用户快速完成程序化的工作,灵活地组合运用函数则能够完成多样化的任务。
    python的函数支持接收一系列参数,并对系列参数在函数体中进行加工,最终返回一些结果

    下面是对python中函数的概括性阐述,其中用到的代码参考了书籍《Python编程:从入门到实践》的第七章内容。

1.自定义一个函数

使用python的关键字 ‘def’ 可以快速创建一个函数

def greet_user():
	'''简单的问候语'''
	print('hello')

注意观察自定义函数的语法格式、冒号、缩进以及文档注释的写法。

2.向函数传递信息

函数一般都用来处理特定的任务,这就需要接收特定地信息。让我们为上面的greet_user函数设置一个接收信息的参数username

def greet_user(username):
	'''简单的问候语'''
	print('hello ' + username.title + ' !')

如此这般,greet_user函数便成为一个必须接收username参数的向用户问好的函数了,它对参数的加工很简单,只是让其转换为首字母大写的字符串格式。

3.形参与实参

为了更好地解释函数中的参数,这里用形参和实参的概念加以区分。
形参:指函数定义时,将要接收参数值并带入函数体中进行加工的变量,它们在函数定义时已经存在,
譬如greet_user函数中的username。
实参:指调用函数时,向形参赋值的对应参数值,即实际的参数值。

4.实参的传递

传递参数非常重要,不传或者错传参数都会让函数无法运行。一般传递参数有位置传递和关键字传递两种方法。
位置传递:调用函数时,按照定义函数时的形参位置顺序,向顺序中传递对应实参
关键字传递:调用函数时,使用赋值语句,为每个形参赋值实参
实参传递的两种方法可以混用,但混用时,位置传递要在关键字传递之前,否则就会看见
“SyntaxError: positional argument follows keyword argument”

5.默认值

出于任务需要,有的形参可能需要重复指定,那么我们可以为其设定默认值,这样就不用为其手动传入实参了。当一个形参有默认值时,若不为其传递实参,则函数使用默认值进行加工。

def describe_pet(pet_name, animal_type = 'dog'):
	'''显示宠物的信息'''
	print('i have a ' + animal_type + '.' ')
	print('my ' + animal_type + ''s name is ' + pet_name + '.')

比如上面这个函数,如果给大部分的宠物狗用户使用,则他们就不必再重复指定animal_type参数值了。

6.返回值

一个参数在调用之后,其输出结果会默认从内存中释放掉,如果我们想要保留加工的结果,则需要为其指定返回值,并进行储存。
使用return语句在函数最后指定一个值,并且记得在调用函数时对其进行变量赋值,这样它就会在函数调用行返回你为它赋值的变量。

7.可选的实参

有时候,函数可以接收无限个实参,这类实参给或者不给也不影响函数的正常运行。可选的实参也有两种接收方式,它们用 * 和 ** 进行了区分。
当一个函数语句中,某个形参前有一个*,那么该形参将会是一个元组类型,它可以接收无限个实参,按照实参的被传递顺序进行储存。
当某个形参前有两个 **时,那么该形参将会是一个字典类型,它也可以接收无限个实参,不过接收的实参需要采用关键字传递方式,满足字典键值对格式的需要。
需要注意的是:
1。传递可选实参时,要注意。面对第一种元组接收类型,可选实参要放在必须实参的后面,这样可选实参才能够被正确抓取。同时,实参应当全采用位置传递方法,否则,就会出现位置传递在关键字传递之后的错误。
2.面对第二种字典接收类型时,关键字传递是必要的。必须实参和可选实参在使用关键字传递方法时没有位置顺序要求。
再注意的是,带有默认值的形参和 ** 代表的形参不同,前者是必须要有,后者是可有可无,它们会影响到函数体的编写内容
3.如果能用 ** 接收可选实参,就不要用 * 接收可选实参。

回顾

函数是调用python第三方库时必须要用到的方法,理解函数尤为重要。
总得来说,函数就是接收一些信息,对其进行加工,最后输出一些内容的可被重复调用的片段代码块,它们可以被放在其他模块中以供自己和他人调用。
更重要的,函数体内完成任务的思想方法才是一个函数的核心,如何编写一个高效、实用的函数体来完成工序会是难点,会耗费大量的时间去验证工作的正常运行和逻辑关系是否融洽。
此外,函数使用过程中也有一些标准化的内容,譬如变量命名规范,函数提示文档的撰写等,这些约定俗成的规定让广泛学习和相互借鉴变得更加方便。
最后,函数的使用非常灵活,可以一个函数套用一个函数,再套用一个函数等,这取决于编程者的思想。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值