函数的理解和定义
函数是一段代码的表示
- 函数是一段具有特定功能的,可重用的语句组
- 函数是一种功能的抽象,一般函数表达特定功能
- 一般函数由两个作用:降低编程难度和代码复用
函数的表达式
def <函数名>(<参数0个或者多个>):
<函数体>
return <返回值>
函数的使用和调用过程
用函数名加上参数,对函数进行调用,给出的参数会替换函数定义中的参数。
函数的参数传递
无论函数是否由参数,都必须保留括号。
函数定义时参数的要求
- 可选参数的传递,可选参数必须放到必选参数后面
- 可变参数的传递,指的是值和数量都不确定的情况,把确定的参数放到前面,不确定的参数用*b放到最后面
def <函数名>(<参数>,*b):
<函数体>
return <返回值>
例如
def fact(n,*b):
s=1
for i in range(1,n+1):
s*=i
for item in b:
s*=item
return s
print(fact(5,4))
print(fact(3,2,4))
输出
480
48
参数传递的两种方法
- 按照参数的位置来传递
def plus(n,m):
print("n="+n+" m="+m)
return n+m
print(plus(3,4))
- 按照参数的名称方式来传递
def plus(n,m):
print("n="+n+" m="+m)
return n+m
print(plus(m=3,n=4))
函数的返回值
函数可以不返回值,或者返回一个值多个值。如果是多个,则返回一个元组
def fact2(n,m=1):
s=1
for i in range(1,n+1):
s*=i
return s//m,n,m
print(fact2(10,5))
输出为
(725760, 10, 5)
全局变量和局部变量
-
规则1,局部变量和全局变量是不同的变量,哪怕名字一样
- 全局变量:函数外面使用的变量
- 局部变量:函数内部使用的变量,函数运行结束后,局部变量被释放
- 可以在函数内部中用global保留字在程序内部使用全局变量
-
规则2,局部变量为组合数据类型且未在函数体中创建,等同于全局变量,
例如下面的ls
ls = ['F','f'] def func(a): #ls=[] ls.append(a) return func("C") print(ls)
lambda函数
表达式
<函数名>=lambda <参数>:<表达式>
等价于
def <函数名>(<参数0个或者多个>):
<函数体>
return <返回值>
区别是函数体只能是表达式,而不是其他语句
例子
f=lambda x,y:x+y
fp=lambda :"表达式"
print(f(3,4))
print(fp())
用途
- lambda函数主要用作一些特定函数或者方法的参数
- lambda函数有一些固定的使用方式,(后续更新。。。。)