基础学习记录(5/17)——函数与Lambda表达式

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/ZHAOYUAN_/article/details/102749644

基础学习记录(5/17)——函数与Lambda表达式

一、函数

1.函数定义

  • 创建函数用def语句,其格式为:def fun_name(par1,par2,…): 由def关键字,函数名和参数表组成
 def 函数名(参数列表)
     函数体
  • 任何传入参数或者自变量必须放在圆括号中间

  • 定义函数内容以冒号开始,注意缩进问题

  • return语句用于返回一个对象结果,当程序执行到函数的return语句时,就会将指定的值返回并结束函数,return后面的语句将不会执行

  • python可以没有返回值,可以有一个返回值,也可以有多个返回值,返回值的数据类型没有限制

def funXY(x, y):
    x = 2*x+y
    y = y*y
return x, y
x = 4
y = 6
print(funXY(x,y ))  # 14,36

2.函数参数

python中的函数参数主要有3种形式

  • 位置或关键字参数
    位置或关键字参数是python默认的参数类型,函数的参数定义为该类参数后,可以通过位置参数,或者关键字参数的形式传递参数
  def fun2(a,b,c):
    print(a,b,c) 
fun2(1,2,3)  # 可使用位置参数输出123
fun2(a=1,b=2,c=3) #可使用关键字参数,关键字参数之间位置没有关系输出123
fun2(1,b=2,c=3)  #混合参数,位置参数必须在关键字参数之前输出123
fun2(a=1,b,c) #报错

注意函数参数列表中可以定义默认参数,但是python不允许带默认值的参数定义在没有默认值参数之前

def fun3(a=1,b):
print(a,b)
fun3(2)   #报错
def fun3(a,b=3):
print(a,b)
fun3(1)  #输出13
  • 任意数量的位置参数
    任意数量的位置参数在定义的时候需要一个星号前缀来表示,在传递参数的时候,可以在原有参数的后面添加0个或多个位置参数,这些参数将会被放在元组内并传入函数。
def fun4(str1,*numbers):
    print(str,numbers)
fun4("numbers:",1,2,3,4)
#<class 'str'> (1, 2, 3, 4)

注意任意的位置参数(一个 一个星号前缀)必须定义在位置或关键字参数之后,并且在任意数量的关键字参数(两个星号前缀)之前

  • 任意数量的关键字参数
    任意数量的关键字参数在定义时,参数名称之前需要两个星号作为前缀,这样定义出来的参数可以在原有参数后面添加任意个0个或多个关键字参数

二、lambad语句

python语句允许使用lambad语句创建匿名函数,也就是说函数没有具体名称;lambad语句中,冒号前是函数参数,若由多个函数使用逗号分隔,冒号右边时返回值

 g = lambda x:x+1
  print(g) 
  print(g(1)) #2

使用lambad函数注意以下4点

  • lambad定义的是单行函数,如果需要复杂的函数,应该使用def语句
  • lambad参数列表可以包含多个参数
  • lambad语句有且只有一个返回值
  • lambad语句中的表达式不能含有命令,而且限有一条表达式

猜你喜欢

转载自blog.csdn.net/ZHAOYUAN_/article/details/102749644