Task06:函数与Lambda表达式(2天)

一、函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。

1、函数定义
你可以定义一个由自己想要功能的函数,以下是简单的规则:

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
  • 函数内容以冒号起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
def 函数名(参数列表):
    函数体

2、函数调用

# 定义函数
def printme( str ):
   # 打印任何传入的字符串
   print (str)
   return
 
# 调用函数
printme("我要调用用户自定义函数!")
printme("再次调用同一函数")

3、函数参数
Python 的函数具有非常灵活多样的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数。从简到繁的参数形态如下:

  • 位置参数 (positional argument)
def functionname(arg1):
    "函数_文档字符串"
    function_suite
    return [expression]

arg1 - 位置参数 ,这些参数在调用函数 (call function) 时位置要固定。

  • 默认参数 (default argument)
def functionname(arg1, arg2=v):
    "函数_文档字符串"
    function_suite
    return [expression]

arg2 = v - 默认参数 = 默认值,调用函数时,默认参数的值如果没有传入,则被认为是默认值。
默认参数一定要放在位置参数后面,不然程序会报错。

  • 可变参数 (variable argument)

可变参数就是传入的参数个数是可变的,可以是 0, 1, 2 到任意个,是不定长的参数。

def functionname(arg1, arg2=v, *args):
    "函数_文档字符串"
    function_suite
    return [expression]

*args- 可变参数,可以是从零个到任意个,自动组装成元组
加了星号(*)的变量名会存放所有未命名的变量参数。

  • 关键字参数 (keyword argument)
def functionname(arg1, arg2=v, *args, **kw):
    "函数_文档字符串"
    function_suite
    return [expression]

**kw- 关键字参数,可以是从零个到任意个,自动组装成字典

扫描二维码关注公众号,回复: 12420222 查看本文章
  • 命名关键字参数 (name keyword argument)
def functionname(arg1, arg2=v, *args, *, nkw, **kw):
    "函数_文档字符串"
    function_suite
    return [expression]

*, nkw- 命名关键字参数,用户想要输入的关键字参数,定义方式是在nkw 前面加个分隔符 *
如果要限制关键字参数的名字,就可以用「命名关键字参数」
使用命名关键字参数时,要特别注意不能缺少参数名。

  • 参数组合

在 Python 中定义函数,可以用位置参数、默认参数、可变参数、命名关键字参数和关键字参数,这 5 种参数中的 4 个都可以一起使用,但是注意,参数定义的顺序必须是:

位置参数、默认参数、可变参数和关键字参数。
位置参数、默认参数、命名关键字参数和关键字参数。

二、lambda表达式

python 使用 lambda 来创建匿名函数。

所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。

  • lambda 只是一个表达式,函数体比 def 简单很多。
  • lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式- 中封装有限的逻辑进去。
  • lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
  • 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
lambda [arg1 [,arg2,.....argn]]:expression
# 可写函数说明
sum = lambda arg1, arg2: arg1 + arg2
 
# 调用sum函数
print ("相加后的值为 : ", sum( 10, 20 ))	#30
print ("相加后的值为 : ", sum( 20, 20 ))	#40

猜你喜欢

转载自blog.csdn.net/qq_43627017/article/details/107753327