Python 函数笔记
1.函数的定义:一个被封装的具有特定功能的代码段。【关键字def】
2.函数的特定点:①可以重复使用(复用性);②保持代码的一致性;③方便修改。
3.函数名:给封装好的代码段(函数)起个别名。
4.参数分为两种:形参和实参。
①形参:本质上是一个局部变量,由于接受函数外部的数据。它是定义函数时定义的;
②实参:在函数调用执行时,传递的数据。
5.返回值:将函数中的局部变量传递到函数外部。【return为关键字】
注:return语句一旦执行函数就会终止。在没有return语句的前提下,默认的返回值为None。
eg:
def functionname( parameters ):
"函数_文档字符串"
function_suite
return [expression]
6.变量的作用域:(起作用的范围)就是定义在变量可以使用的代码范围。
7.全局变量:(整个程序都可以调用的)在整个函数中都可以被调用的变量,一般直接定义在函数的外部,或者用global关键字在函数内部定义。(是可以被所有的函数访问的,除非被删掉否则一直存活到脚本运行结束。)
8.局部变量:函数内部定义的变量包括形参。只能在函数内部调用。
注:在函数中使用全局变量时,可以调用全局变量的值,不能直接修改全局变量的值(值如果是可变类型,值可以改变)。
(7,8)eg:
total = 0 # 这是一个全局变量
# 可写函数说明
def sum( arg1, arg2 ):
#返回2个参数的和."
total = arg1 + arg2 # total在这里是局部变量.
print "函数内是局部变量 : ", total
return total
#调用sum函数
sum( 10, 20 )
print "函数外是全局变量 : ", total
#结果
函数内是局部变量 : 30
函数外是全局变量 : 0
9.参数类型:
①位置参数:实参的赋值时和形参定义的顺序一致。
eg:
def test1(x,y,z)
print(x,y,z)
test2(1,2,3)#结果为1,2,3
②命名参数:可以不按照顺序赋值。
eg:
test1(z=1,x=2,y=3)
③默认值参数:定义形参时,给形参默认值,默认值参数写在参数列表的最右侧。
eg:
#可写函数说明
def printinfo( name, age = 35 ):
"打印任何传入的字符串"
print "Name: ", name
print "Age ", age
return
#调用printinfo函数
printinfo( age=50, name="miki" )
printinfo( name="miki" )
#结果
Name: miki
Age 50
Name: miki
Age 35
④可变长度参数:在普通参数前加*,可将任意长度的东西存在元组中。
eg:
# 可写函数说明
def printinfo( arg1, *vartuple ):
"打印任何传入的参数"
print "输出: "
print arg1
for var in vartuple:
print var
return
# 调用printinfo 函数
printinfo( 10 )
printinfo( 70, 60, 50 )
#结果
输出:
10
输出:
70
60
50
⑤可变长度的命名参数:在普通形参前加**,例如(**kwargs)。
eg:
def login(**kwargs):
print(kwargs)
login (username = "root",password="123456",port = 3306,
charset"Utf-8",host = "localhost")
def login(**kwargs):
for i in kwargs:
print(i,"->",kwargs[i])
data ={'host':'localhost','username':'root','password':'123456'
'port':3306,'charset':'Utf-8'}
login(**data)
10.匿名函数
python 使用 lambda 来创建匿名函数:
①lambda只是一个表达式,函数体比def简单很多。
②lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
③lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
eg: lambda语法:【lambda [arg1 [,arg2,…argn]]:expression】
# 可写函数说明
sum = lambda arg1, arg2: arg1 + arg2
# 调用sum函数
print "相加后的值为 : ", sum( 10, 20 )
print "相加后的值为 : ", sum( 20, 20 )
#以上实例输出结果:
相加后的值为 : 30
相加后的值为 : 40
——综上全部内容