day③:函数式编程
start
一.函数的定义和使用
def 函数名(参数):...函数体...return 返回值
- def:表示函数的关键字
- 函数名:函数的名称,日后根据函数名调用函数
- 函数体:函数中进行一系列的逻辑计算,如:发送邮件、计算出 [11,22,38,888,2]中的最大数等...
- 参数:为函数体提供数据
- 返回值:当函数执行完毕后,可以给调用者返回数据。
例子:
#!/usr/bin/python#coding=utf-8def test(name,age="18"):print ("my name is %s,age: %s") %(name,age)obj=test("yaobin",24)obj2=test("yaobin")[root@localhost python]# python def_test.pymy name is yaobin,age: 24my name is yaobin,age: 18
二.函数的参数
- 普通参数
- 默认参数
- 动态参数
普通参数例子:
def func(name): #name :形参print namefunc('chenyaobin') #'chenyaobin :实参'
默认参数例子:
注意:默认参数必须放在最后
def func(name,age=24):print("my name is %s,age: %s") %(name,age)func("chenyaobin") #age用了默认参数func("hy","18") #指定参数结果:my name is chenyaobin,age: 24my name is hy,age: 18
指定参数例子:
def func(name,age=24):print("my name is %s,age: %s") %(name,age)func("chenyaobin") #age用了默认参数func("test",30) #按顺序的指定#func(age=30,"test") #不可以这样子,会报错func(age=30,name="test") #不按顺序的指定结果:my name is chenyaobin,age: 24my name is test,age: 30my name is test,age: 30
动态参数例子:
# 动态参数# 例子①:def func(*args):print args#执行方式一func(11,22,33,44,55,66)#执行方式二li = [11,22,33,44,55,66]func(*li)结果:(11, 22, 33, 44, 55, 66)(11, 22, 33, 44, 55, 66)
解析: *args表示把传进来的位置参数存储在tuple(元组)args里面
# 动态参数# 例子②:def func(**kwargs):print kwargs#执行方式一func(name="yaobin",age=18)#执行方式二li={"name":"yaobin","age":18,'gender':'male'}func(**li)结果:{'age': 18, 'name': 'yaobin'}{'gender': 'male', 'age': 18, 'name': 'yaobin'}
解析: **kwargs表示把参数作为字典的健-值对存储在dict(字典)kwargs里面
# 动态参数# 例子③:def foo1(arg1,arg2,key1=1,key2=2,*arg,**keywords):print "arg1 parameters is ",arg1print "arg2 parameters is ",arg2print "key1 parameter is ",key1print "key2 parameter is ",key2print "Arbitrary parameter is ", argprint "keywords parameter is ",keywordsfoo1(2,3,4,5,456,789,a1=10,a2=20,a3=30)结果:arg1 parameters is 2arg2 parameters is 3key1 parameter is 4key2 parameter is 5Arbitrary parameter is (456, 789)keywords parameter is {'a1': 10, 'a3': 30, 'a2': 20}
解析:
函数参数分为四部分:
arg1、arg2、key1、key2普通参数,其中 key1和key2有默认值
*arg: 多余的非普通参数,组成一个元组存储在args中
**keywords: 多余的非普通参数,组成一个字典的健-值对存储在keywords里面
函数声名部分,参数的四个部分不可颠倒位置,可以没有其中某几部分。
python函数的这种特性使得函数参数更加灵活,参数个数也不受限制。
arg1、arg2、key1、key2普通参数,其中 key1和key2有默认值
*arg: 多余的非普通参数,组成一个元组存储在args中
**keywords: 多余的非普通参数,组成一个字典的健-值对存储在keywords里面
函数声名部分,参数的四个部分不可颠倒位置,可以没有其中某几部分。
python函数的这种特性使得函数参数更加灵活,参数个数也不受限制。
end
浙公网安备 33010602011771号