7.函数def

test.py中的内容:

#coding:utf-8     #支持中文

#函数的声明/定义
def func1():    #无参数
    print "爽歪歪"   

def func2(name):  #有参数
    print (name + "我爱你")

def add1(num1,num2):  #有参数
    print num1+num2


def add2(num1,num2):   #有返回值
    return num1+num2


#函数的调用
func1()   
func2('小甲鱼')
add1(10,20)

count = add2(1,2)
print count
gjw@gjw:~/TEST_PYTHON$ python ./test.py
爽歪歪
小甲鱼我爱你
30
3

def sayword(name = '小甲鱼',word = '爽歪歪'):   #实参用关键字索引
    print name+'->'+word

sayword(word = '让编程改变世界',name = '小甲鱼')
sayword()

结果:
小甲鱼->让编程改变世界
小甲鱼->爽歪歪

收集参数

1】编写函数,很多情况下我们都会传递一系列值作为参数。为了让用户更加方便地给函数提供任意多的值作为参数, Python 中实现了一个 收集参数 的机制:在参数名前面加星号 ( * )。即: def cParam( *params ): pass 。来几行代码看看具体情况:

>>> def cParam1( *params ):
    print params
函数调用:    
 >>> cParam1()  #无参数时,返回空的元组
()

 >>> cParam1(1)  #输出的是元组
(1,)

 >>> cParam1(1, 2)  #输出的是元组
(1, 2)

【2】
【局限性】上面不能传递“关键字参数”
【解决方案】引出两个星号(**),例:

>>> def cParam2( **params ):
    print params
函数调用:
>>> cParam2()  #输出的是字典
{}   

>>> cParam2( a=1, b=2, c=3 )   #输出的是字典
{'a': 1, 'c': 3, 'b': 2}  

【3】* 和 ** 是可以一起使用的,返回元组/字典的结合体。
>>> def cParam3( *params1,**params2 ):
    print params1
    print params2
函数调用:
>>> cParam3()
()  #空元组
{}  #空字典

>>> cParam3(1)
(1,)  #元组
{}    #空字典

>>> cParam3(1,2,3,a=10,b=20)
(1,2,3)  #元组
{'a': 10, 'b': 20}

【4】*与元组一起使用,作为函数的实参
#coding:utf-8     #支持中文

def add(a,b):
    return a+b

def cParam(*params):
    return params

print(cParam(1,2))  #(1, 2)
print(add(*cParam(1,2)))  #3

输出:
(1, 2)
3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值