python demo函数用法_python函数的用法整理

一些好的东西,总是可以被加以提炼,再重复利用,以提高工作效率。函数就是这样一个工具。

python函数的定义与调用

python中,通过def关键字可以定义一个函数。如下:

7e3e6709c93d70cf4dc4578628e56006baa12b3b.jpeg?token=a97d67688ad03f529a4757d54a1f44f4函数定义

上面的demo展示了一个函数的常规定义方法。通过def引导,给一个标识符,后面加括号,括号里是若干个参数,也可以没有。在函数体中,就可以直接使用参数。

函数定义好后,可以直接通过标识符对函数进行调用,调用时,可以传入适当的参数。如下:

b8014a90f603738d9ad4681b62220157f819ec29.jpeg?token=7fe5442b36f59070b468aed13da7279b函数定义

python函数的参数

函数,可以有0或若干个参数。参数的本质就是变量。只不过,这个变量的赋值是在函数调用时,由函数的调用方完成的。

有参函数的写法有若干种,不同的写法,以满足调用方在调用时的多样性。我们用一个稍微复杂的函数来说明这个问题。如下:

10dfa9ec8a136327984046df5eb611ea09fac76a.jpeg?token=36c1f25b8b7eb4615cf7cf9a115cfdfe求和1

上面的demo里,get_sum函数包含两个参数a,b,在调用时,按照顺序传入a和b。

有没有方式可以先写b后写a呢?有。如下:

6a600c338744ebf82eafc53c0bc0662c6159a793.jpeg?token=4d9c6113b127c97dc2976af0764dc7f2求和2

上面这种函数调用时,传参的方式称之为关键字参数。

有时候,我们可能希望限定调用方在调用时传参的方式,比如说某些参数必须按照位置传参,某些必须按照关键字传参。可使用 / 或 * 来帮助。/前面的都必须按位置传,*后面的都必须按照关键字传。如下:

730e0cf3d7ca7bcb8052c4096f30da65f624a8af.jpeg?token=d43ec71b8d7404c46d376f89f804285e限定传参方式

有些同学可能会有疑惑:如果参数前面是*号,后面是/,该如何传参呢?如下:

9e3df8dcd100baa100d3071a96290814c9fc2e50.jpeg?token=9695ba3f087ba94a113a8e21bcf60c01前面是 * 后面是 /

事实上,这种形式,在python中是不允许的。会报SyntaxError,语法错误。有使用 * 或 / 来限定调用方的传参方式时,有以下几条规则:

1. 最多出现一个 * 和 一个 /。

2. * 号不能出现在最后一个位置,/ 不能出现在最开始的位置。

3. 如同时有 / 和 * 时,/ 必须位于 * 的前面。

但是下面几形式都是错误的。如重复传参,少参,多参等。

8644ebf81a4c510fa59b980cb160942bd42aa50d.png?token=a6f0b037fd978fa76b9d0bd5d8028be9错误的调用传参

函数如果在调用时,给出了参数的默认值,则可不传,称之为默认参数。如下:

5243fbf2b2119313e4395a79b501bdd190238d45.png?token=a34ed65f28e0abbf9aa98b07439c70a9默认参数

有时候,我们可以还想要计算n个数的和,n是无法确定的,由调用方才能决定。称之为变长参数或不定长参数。如下:

4b90f603738da97728b4c7d46168491f8718e372.png?token=771333da79e99e1c456904003ba67369变长参数

上面的demo展示了,可以用星号加上标识符的形式,定义一个变长参数。参数传入函数后,会形成一个元组的形式。可以通过for遍历的方式来处理他们。

变长参数的标识也可以用两个星号来作为前缀。这种形式下,参数传入函数后,会就会形成一个字典。如下:

8326cffc1e178a8239e94b10263ac28ba877e86d.png?token=8e8c7af5de41910a8d322c85f9855bcb双星号变长参数

python匿名函数

当函数体很短小,一条语句就可以描述时,可以lambda的形式来创建一个匿名函数,如下:

622762d0f703918fa1c2a4048104979158eec4a9.jpeg?token=535243d1dff7ab9b716a43c8f9bb4e17lambda匿名函数

匿名函数的优势在于,在调用式,不需要占用栈内存空间,效率较高。但是,它仅仅适用于逻辑简单的短小的函数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值