1、函数的定义
格式:def <函数名>(<参数(0个或多个)>):
<函数体>
return <返回值>
2、函数中的可选参数
函数定义的时候,可以使用可选参数。使用的时候可选参数要放在非可选参数的后面,然后调用这个函数的时候,可选参数可以不给其赋值
例如:
def fact(n,m = 1):
s = 1
for i in range(1,n+1):
s *= i
return s//m
print(fact(10))
print(fact(10,10))
3、函数中的可变参数
可变参数:即指函数定义的时候不确定参数的总数量
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(10,3))
print(fact(10,3,4,5,6))
这时候的b是一个组合组合数据类型
4、参数的传递
函数调用的时候,参数的传递可以按照位置或名称方式进行传递
def fact(n,m=1):
s = 1
for i in range(1,n + 1):
s *= i
return s//m
fact(10, 5) #按照位置
fact(m=5, n=10)#按照名称
5、函数的返回值
函数可以有返回值,也可以没有,可以有return,也可以没有
return可以传递0个返回值,也可以传递任意多个返回值
多个返回值,直接返回一个元组
def fact(n,m=1):
s = 1
for i in range(1,n + 1):
s *= i
return s//m, n, m
fact(10,5) #这里将会返回一个包含三个元素的元组
a,b,c = fact(10,5)
6、局部变量与全局变量
规则1:函数中的变量都是局部变量,为了在函数中使用全局变量,应使用global保留字
n, s = 10, 100
def fact(n):
global s #使用global声明这是一个全局变量
for i in range(1,n + 1):
s *= i
return s
print(fact(n),s)
规则2:局部变量为组合数据类型且未创建,等同于全局变量
ls = ['F', 'f']
def func(a):
ls.append(a)
return
func("C")
print(ls)
7、lambda函数
lambda函数返回函数名作为结果
lambda函数是一种匿名函数,即没有名字的函数
使用lambda保留字定义,函数名是返回结果
lambda函数用于定义简单地、能够在一行内表示的函数
使用格式:<函数名>= lambda<参数>:<表达式>
等价于: def <函数名>(<参数>):
<函数名>
return <返回值>
f = lambda x,y : x + y
f(10,15)
f = lambda : "这是一个lambda函数"
print(f())
不建议经常使用