Day 06 函数和lambda表达式

一、函数

1.1 简单介绍

Python中的函数和数学中的函数其实是相类似的。当我们在数学运算中使用某些函数的时候,我们可以通过函数名来向阅读者说明我们使用的是什么函数、进行了什么运算。比如sin 90° 的意思是求90°角的正弦值,运算结果会为1。而在Python中也有相同的一些内置函数,可以帮助我们更快、更便捷地运算。比如print(‘key’)函数是指打印括号里的内容,结果会输出:key。
但有时我们在使用函数时可能会发现没有可以直接实现我们所想功能的函数,或者说有几个内置函数要一起使用才能实现我们想要的功能,但每次使用都要调用多个函数太麻烦了。此时,我们就可以自行去设定一个新的函数,来帮助我们实现所要的功能。这个新的设定函数的过程就是“定义函数”。

1.2 定义函数

1.2.1 定义函数的形式

# 形式
def functionname(parameters):
	function_suite   # 此处为该函数被调用时要实现的功能的代码块
	return [expression]  # 此处为该函数返回给调用者的内容,非必要

注意:
1.定义函数是以def 开始的,在函数定义完以后,需要空两行在写新的代码或者调用刚定义的函数。
2.函数必先定义才可被调用,否则程序会报错。

1.2.2 参数

在定义函数中,会涉及到多类参数,具体包括位置参数 (positional argument)、默认参数 (default argument)、可变参数 (variable argument)、关键字参数 (keyword argument)、命名关键字参数 (name keyword argument)和参数组合。
1.位置参数
位置参数在定义的函数中是有特定位置的,这个位置是定义函数的人自己安排的。一旦该参数的位置确定了,不管调用者输入什么数据,这些数据都会被放置相应设定的位置上。

def put(position):
	print(f'我想要把它放在{position}这个位置')


put('左边')  # 我要把它放在是左边这个位置
put(1# 我要把它放在是1这个位置

2.默认参数
默认参数是指在函数定义过程中,有些参数的值是有默认指定的值的,如果调用者不对指定的值进行赋值,那么程序将按照默认的值进行函数的执行。

# 形式
def functionname(arg1, arg2=value):
    "函数_文档字符串"
    function_suite
    return [expression]

在上面的形式展示中,arg2就是一个默认参数,赋值符号后的value就是默认的值。

3.可变参数
可变参数指的是参数的个数是可变的,可以从0到无数个。

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

在上面展示的形式中,*args就是一个可变参数。当函数被调用时,调用者输入除位置参数和默认参数以外的所有数据,都将被以元组的形式储存在可变参数中。

4.关键字参数

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

1.**kw就是关键字参数。当函数被调用时,调用者以“key = value”的形式输入的0到无数个数据时,这些数据将被以字典的形式储存于关键字参数中。
2.命名关键字参数
当定义函数的过程中,想要限定关键字的命名时,可以使用命名关键字。

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

(1)命名关键字参数(nkw)前的“*”是必不可少的,不然程序将会把nkw视为位置参数。
(2)调动函数时,要使用命名关键字参数,必将带上参数的名字,以“nkw = value”的形式对其进行赋值。
5.参数组合
参数组合不是一类特定的参数,是指上述的多个参数类型结合使用。但一般不建议使用太复杂的参数组合,不然函数难以理解。

1.3 变量作用域

在Python中,我们用“variable_name = value”来定义和赋值一个变量。在不同位置上的变量有不同的作用域。在函数外部的变量是具有全局作用域,称为全局变量;在函数内部的变量具有局部作用域,称为局部变量。

1.4 内嵌函数、闭包和递归

1内嵌函数最简单的理解就是一个函数A内部还有另一个函数B。其中B这个函数就是内嵌函数。
2.闭包是一种特殊的内嵌函数,是指内部函数对外层非全局作用域的变量进行引用,而这个引用了外部变量的内部函数就叫闭包。
3.递归是指函数在内部调用了自身。

二、lambda函数

lambda函数就是lambda表达式,是一种匿名函数,即该函数在定义时是不需要函数名的。在编程的过程中,如果我们需要的只是进行简单的运算,而且只是临时一用,对其进行复杂的编程大可不必,可以调用lambda函数。
其具体的理解和使用方法可以查看一文:Python中lambda函数的理解与使用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值