文章目录
1、函数的基本使用
1.1函数的定义
函数是一段具有特定功能的、可重复的语句组,用函数名来表示并通过函数名进行功能调用。函数也可以看做是一段具有名字的子程序,可以在需要的地方调用执行,不需要在每个执行的地方重复编写这些语句。每次使用函数可以提供不同的参数作为输入,以实现对不同数据的处理;函数执行后,还可以反馈相应的处理结果。
使用函数主要有两个目的:降低编程难度和代码重用。函数是一种功能抽象,利用它可以&讲一个复杂的大问题分解成一系列简单的小问题,然后将小问题继续划分成更小的问题,当问题细化到足够简单时,就可以分而治之,为每个小问题编写程序,并通过函数封装,当各个小问题都解决了,大问题也就迎刃而解了。函数可以在一个程序中的多个位置使用,也可以用于多个程序,当需要修改代码时,,只需要在函数中修改一次,所有调用位置的功能都更新了,这种代码重用降低了代码行数和代码维护难度。
Python使用def保留字定义一个函数,语法形式如下:
def <函数名>(<参数列表>):
<函数体>
return <返回值列表>
函数名可以是任何有效的python标识符;参数列表是调用改函数是传递给它的值,可以与零个、一个或多个,当传递多个参数时各参数由逗号分隔,当没有参数时也要保留圆括号。函数定义中参数列表里面的参数是形式参数,简称为“形参”。函数体是函数每次被调用时执行的代码,由一行或多行语句组成。当需要返回值时,使用保留字return和返回值列表,否则函数可以没有return语句,在函数体结束位置将控制权返回给调用者。
函数调用和执行的一般形式如下:
<函数名>(<参数列表>)
此时,参数列表中给出要传入函数内部的参数,这类参数成为实际参数,简称为“实参”。
参数定义与传递的基本顺序:
位置参数 ⟹ \Longrightarrow ⟹关键字参数 ⟹ \Longrightarrow ⟹可变数量参数
1.2 函数的调用过程
程序调用一个函数需要执行以下4个步骤:
(1)调用程序在调用处暂停执行
(2)在调用时将实参复制给函数的形参
(3)执行函数体语句
(4)函数调用结束给出返回值,程序回到调用前的暂停处继续执行
1.3 lambda函数
lambda保留字用于定义一种特殊的函数——匿名函数,又称lambda函数。匿名函数并非没有名字,而是将函数名作为函数结果返回,语法格式如下:
<函数名> = lambda <参数列表> : <表达式>
lambda函数与政策函数一样,等价于下面形式:
def <函数名> (<参数类表>):
return <表达式>
简单的说,lambda函数用于定义简单的、能够在一行内表示的函数,返回一个函数类型,实例如下:
>>> f = lambda x, y : x**y
>>> f(3,4)
81
>>> def f(x,y):
z = x ** y
return z
>>> f(3,4)
81
lambda表达式只可以包含一个表达式,该表达式的计算结 果可以看作是函数的返回值,不允许包含复合语句,但在表达式中可以调用其他函数。
lambda函数应用:
谨慎使用lambda函数
- lambda函数主要用作一些特定函数或方法的参数
-lambda有一些固定使用方式,建议逐步掌握
-一般情况,建议使用def定义普通函数
2、函数的参数传递
2.1 可选参数和可变数量参数
在定义函数时,如果有些参数存在默认值,即部分参数不一定需要调用程序输入,可以在定义函数时直接为这些参数指定默认值。当函数被调用时,如果没有传入对应的参数值,则使用函数定义时的默认值替代。
由于函数调用时需要按顺序输入参数,可选参数必须定义在非可选参数的后面。
>>> def f(x, y =1):
return x+y
>>> f(1)
2
>>>f(2,8)
10
在定义时