1.基本语法
def 函数名(参数列表):
函数体
2.函数分类
2.1有参数
(1)有几个参数,就得传入几个参数
(2)在函数调用中输入参数时,参数名称必须对应
def aa(x):
print(x)
aa(x=5)
(3)当调用函数时,必须全部定义名称,且名称对应,顺序可以不同
def aa(x,y):
print(x)
aa(y=2,x=5)
(4)函数中可以定义默认值
def aa(x=30,y):
print(x)
aa(y=2,x=5)
(5)不定长度参数
def aa(x,y,*args,**kwargs):
print(x)
print(args) # 元组
print(kwargs) # 字典
aa(1,2,3,4,5,6,7,a = 8,b=9)
2.2 有返回值
(1)单个返回值
def aa(x):
return x
a = aa(10)
(2)多个返回值
def aa(x):
return x,10
a = aa(10) # a是一个元组
a,b = aa(10) # 多个参数接收
3.匿名函数
lambda [arg1 [,arg2,.....argn]]:expression
sum = lambda arg1, arg2: arg1 + arg2
# 调用sum函数
print ("相加后的值为 : ", sum( 10, 20 ))
print ("相加后的值为 : ", sum( 20, 20 ))
4.变量作用域
L (Local) |
局部作用域 |
E (Enclosing) |
闭包函数外的函数中 |
G (Global) |
全局作用域 |
B (Built-in) |
内建作用域 |
L -> E -> G ->B(在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内建中找)
5.全局变量和局部变量
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。
局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。
total = 0 # 这是一个全局变量
# 可写函数说明
def sum( arg1, arg2 ):
#返回2个参数的和."
total = arg1 + arg2 # total在这里是局部变量.
print("函数内是局部变量 : ", total)
return total
#调用sum函数
sum( 10, 20 )
print ("函数外是全局变量 : ", total)