程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

函数与lambda表达式

发布于2019-10-28 16:41     阅读(1243)     评论(0)     点赞(13)     收藏(2)


函数与lambda表达式

一、函数的定义

def function_name(parameter):
function body

例如:

>>> def name(first_name,last_name):
    name=first_name+last_name
    return name
>>> n1="sdf  "
>>> n2="dfs"
>>> name=name(n1,n2)
>>> name
'sdf  dfs'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

二,函数参数的传递

1.实参的传递方式

(1)基于位置实参

你所输入的实参储存在哪个形参里,取决于定义函数时形参的位置,以及你输入实参的顺序。
例如:

>>> def name(first_name,last_name):
    name=first_name+last_name
    return name
>>> n1="sdf  "
>>> n2="dfs"
>>> name=name(n1,n2)
>>> name
'sdf  dfs'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

函数name(first_name,last_name) 就是基于位置实参的函数,实参n1被分配给形参frist_name ,实参n2被分配给形参last_name. 因此,如果n1与n2的位置弄反,那么最终返回的结果也会相反。

(2)基于关键字实参

关键字实参是传递给函数的名称–值对。其实就是在调用函数的时候,指定了这个实参被分配给哪个形参。例如:

>>> def name(first_name,last_name):
    name=first_name+last_name
    return name
>>> n1="sdf  "
>>> n2="dfs"
>>>> name=name(last_name=n2,first_name=n1)
>>> name
'sdf  dfs'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这样就不用在意形参与实参的位置了,可以避免很多错误,而且能很快知道函数实参与形参的对应关系。

2.参数的默认值

定义函数时,可以给每个形参预先设置一个默认值,那么,在调用函数时,如果给形参提供了实参,Python将使用你提供的实参;如果没有给形参提供实参,形参将使用默认值(这时,调用函数时就不用输入这种实参了)。
例如:

>>> def name(first_name,last_name="jordan"):
    name=first_name+last_name
    return name

>>> name=name("maico")
>>> name
'maicojordan'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

注意: 给形参指定默认值时,形参列表必须先列出“没有默认值的形参”,再列出有默认值的形参。因为Python此时是根据位置实参来判断的。

3.传递任意数量的实参

有时候,你不知道预先要定义多少个形参,所以我们可以通过以下做法,来使得函数能够接收任意数量的实参。

>>> def my_car(*cars):
	print("以下就是我的车")
	for car in cars:
		print("-"+car)

		
>>> my_car("宝马","奔驰","兰博基尼","劳斯莱斯")
以下就是我的车
-宝马
-奔驰
-兰博基尼
-劳斯莱斯
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

形参*cars 使得Python创建一个名为cars的空元组,然后,将所有的实参,都收入其中。因此,我们可以通过在函数体内使用这个元组,进而使用到其中的每个元素。

三,lambda表达式

与标准的函数定义相比,lambda表达式显得更简洁
下面给出具有多个参数的lambda表达式用法:

>>> a=lambda x,y,z:x+y+z
>>> a(1,2,3)
6
  • 1
  • 2
  • 3

这里相当于定义了一个名为a的函数,其功能是将x,y,z三个数相加,而且省去了函数定义的大量代码 。不过,lambda表达式在日后维护时,会比较麻烦,所以还是建议用一般的函数定义法



所属网站分类: 技术文章 > 博客

作者:23dh

链接:https://www.pythonheidong.com/blog/article/147259/c19b5fddafad56b77744/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

13 0
收藏该文
已收藏

评论内容:(最多支持255个字符)