学习六 - Python 函数

Python 学习 - 函数

1.创建和调用函数

创建函数

                def function_name():  #无参数函数
                    xxx
                def function_name(par1, par2, ...):  #带参数函数
                    xxx

记住三个关键的东西:def, (), :

调用

                function_name()    #无参数函数调用
                function_name(arg1, arg2, ...)   #带参数函数调用          

直接写出函数名加 () 即可。

返回值

(1)使用关键字 return
(2)当函数中没有使用return关键字写返回值时,默认是

            return None

(3)Python的函数返回值没有类型指定问题,同时还能使用列表和元组返回多个返回值。

深入了解函数的参数

(1) 参数分为形式参数和实际参数
在函数定义的时候给函数的参数为形式参数,如上面的par1, par2
在函数调用的时候给函数的参数为实际参数,如上面的arg1, arg2
(2) 一类特殊的参数——关键字参数
关键字参数就是在传入参数的时候指定形式参数的变量名。

function_name(par1=arg1, par2 = arg2)
(3) 默认参数
在函数 定义的时候 给形式参数的默认值,调用的时候不传递参数表示使用默认值。默认参数必须放在参数列表的最后,否则会报错。

          定义:  def function_name(par1 =  default1, par2=default2):  
                                        xxx
        调用:function_name() #实际上有实参,实参为定义时候的默认值      
>>> def paraerr(heigth = 180, weigth):
    print(heigth)

SyntaxError: non-default argument follows default argument

(4)收集参数
在定义带参数但是不知道需要多少个参数的时候可以使用收集参数。收集参数将所有的参数打包成一个元组。
定义时在参数前加 * ,如:

def test(*par)

要在收集参数后面可以添加其他参数,如

def test2(*par,par1)

但是在调用的时候应该使用关键参数的传递方式,如

test2(arg1,par1 = arg2)

为了避免错误,可以使用默认参是在函数定义的时候就给非收集参数赋予一个默认参数。

收集参数的另一个使用方式:
当传入的参数是一个列表或者元组时,实际传入函数的只有一个参数。一个列表或者元组就是一个参数,但是当我们想再函数体里面使用列表或者元组的每一个元素时,可以使用以下的传入方式:

    >>>a = (1,2,3,4,5,6,7)
    >>>test(*a)

函数的文档

2. 函数变量的作用域

(1)在函数中使用的变量都是局部变量,外部无法访问。在执行完函数后,与该函数有关的所有数据都会自动删除。
(2)在函数外面使用的变量都是全局变量
注意:在函数里面是可以访问全局变量的。但是并不能改变全局变量,当要改变全局变量的值时,Python自动创建于这个全局变量相同的局部变量去接受这个改变。
当非要在函数内修改全局变量时,可以在函数内使用关键字 global 做出声明即可。
如:

>>> A = 1
>>>def fun():
     global A
     A = 10
     print(A)
>>> fun()
10

3. 内嵌函数和闭包

(1) 内嵌函数指的是一个函数内部定义里其他的函数。
特别需要注意作用域。
(2) 闭包
一个函数内对外部作用域的变量进行了引用,这个内部函数就是闭包的。
内部函数对外部函数的局部变量经行修改可以通过关键字 nonlocal

4. lambda表达式

书写格式:lambda 后先写参数,通过一个冒号与后面的表达式隔开。

aname = lambda par1, par2,... : 表达式

lambda表达式的调用:

aname(par1,par2,...)
en
### 回答1: Lambda表达式是Python中的一种匿名函数,它可以在一行代码中定义一个函数。Lambda表达式通常用于简单的函数,它们可以作为参数传递给其他函数或作为返回值返回。 Lambda表达式的语法如下: lambda 参数列表: 表达式 其中,参数列表是用逗号分隔的形式参数,表达式是函数的返回值。 例如,下面的代码定义了一个简单的Lambda函数: f = lambda x: x * x 这个函数接受一个参数x,并返回x的平方。我们可以像调用普通函数一样调用它: print(f(5)) # 输出25 Lambda表达式还可以用于定义匿名函数,例如: g = lambda x, y: x + y 这个函数接受两个参数x和y,并返回它们的和。我们可以像调用普通函数一样调用它: print(g(2, 3)) # 输出5 总之,Lambda表达式是Python中一种非常方便的函数定义方式,它可以让我们更加简洁地编代码。 ### 回答2: Lambda表达式是Python函数中的一种简洁方式,它可以定义在一行内的匿名函数。Lambda使用关键字“lambda”来表示,后面跟随一个或多个参数,分隔符为逗号,然后是冒号和一个表达式。返回值是该表达式的结果。 Lambda表达式的基本语法如下: lambda arguments: expression 其中arguments参数可以是0个、1个或多个参数,expression表达式是lambda函数的返回值。 Lambda表达式的使用场景比较广泛,通常用于函数式编程、过滤器(filter)、映射器(map)、排序器(sort)等操作中。 例如,我们可以使用lambda表达式来定义一个简单的函数: x = lambda a : a + 10 print(x(10)) # 输出结果为20 上述例子中,lambda表达式定义了一个参数“a”,表达式为“a+10”,即函数返回值为传入参数a加上10。 当需要对一个列表中的元素进行操作时,我们可以使用map函数结合lambda表达式来实现: lst = [1, 3, 5, 7] result_lst = list(map(lambda x:x*2, lst)) print(result_lst) # 输出结果为[2, 6, 10, 14] 上述例子中,lambda表达式定义了一个参数“x”,表达式为“x*2”,即将列表中的每个元素乘以2。map函数将该lambda表达式应用于lst中的每个元素,返回一个新的列表。 Lambda表达式比较适用于简单的函数定义和一些简单的操作,但对于较为复杂的任务或需要频繁使用的代码,建议还是使用函数进行定义。 ### 回答3: Python是一种广泛使用的编程语言,而函数Python编程的重要部分。在Python中,函数是一个特殊的代码块,可以接受一些输入(参数),并在执行一些操作后返回输出。其中,lambda表达式是定义函数的一种不同方式。 lambda表达式也被称为匿名函数,因为它们可以定义一个没有名称的函数。与普通函数不同,lambda函数只能包含一个表达式,而不是一条语句块。语法如下: lambda 参数: 表达式 下面是一个简单的例子: add = lambda x, y: x + y print(add(2, 3)) # 输出5 在这个例子中,lambda函数的定义是add = lambda x, y: x + y,其中参数是x和y,表达式是x + y。定义后,我们可以像使用普通函数一样使用它。 lambda函数有许多用途。其中之一是作为其他函数的参数,例如在sort()函数中进行排序。例如,我们可以使用lambda函数按照列表中每个元素的第二个元素进行排序。实现方式如下: a = [(1, 2), (4, 1), (9, 10), (13, -3)] a.sort(key=lambda x: x[1]) # 按每个元组的第二个元素进行排序 print(a) 输出结果为:[(13, -3), (4, 1), (1, 2), (9, 10)] 总之,Lambda表达式是Python语言中一个十分有用的特性,它允许我们创建匿名函数,使代码变得更加简洁和易读。在实际编程中,可以将其用于诸如函数参数传递、过滤器、排序等许多编程任务中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值