#/usr/bin/python
#coding=utf-8
#@Time :2017/10/23 15:58
#@Auther :liuzhenchuan
#@File :函数的一般形式.py
##函数的定义
#x y 为形参 ,sum(6,4)叫实参
def sum(x,y):
print {‘x = 0‘.format(x)}
print {‘y = 0‘.format(y)}
return x + y
m = sum(6,4)
print m
>>> set([‘x = 0‘])
set([‘y = 0‘])
10
###函数的参数
#给形参b定义一个默认的值
def funcA(a,b=0):
print a
print b
funcA(1)
>>> 1
0
#如果实参传入的时候,判定了b的值,那么b优先选择传入的实参,当b没有值时,才会选择默认的值
def funcA(a,b=0):
print a
print b
funcA(10,30)
>>> 10
30
##参数为tuple
#a对应1,b对应2,*c对应剩下的元组列型
def funcD(a,b,*c):
print a
print b
print ‘length of c is :%d‘ % len(c)
print c
funcD(1,2,3,4,5,6)
>>> 10
1
2
length of c is :4
(3, 4, 5, 6)
#通过解包的形式传入元组
def funcD(a,b,*c):
print a
print b
print ‘length of c is :%d‘ % len(c)
print c
# funcD(1,2,3,4,5,6)
#通过解包的形式传入元组
test = (‘hello‘,‘world‘)
funcD(1,2,*test)
>>> 1
2
length of c is :2
(‘hello‘, ‘world‘)
##传入参数为字典,两个星号b代表的是字典,x是字典的键值,b[x]是字典的value.100是a的实参;x=‘hello‘,y=‘nihao‘ 是b的实参,是给a和b赋值
所以不能写成 a=‘hello‘,b=‘nihao‘,也就是不能再用a和b当作实参。
def funcF(a,**b):
print a
print b
for x in b:
print x + ":" + str(b[x])
funcF(100,x=‘hello‘,y=‘nihao‘)
>>> {‘y‘: ‘nihao‘, ‘x‘: ‘hello‘}
y:你好
x:hello
#还可以通过解包的形式,传入字典
def funcF(a,**b):
print a
print b
for x in b:
print x + ":" + str(b[x])
# funcF(100,x=‘hello‘,y=‘你好‘)
#还可以通过解包的形式传入字典
args = {‘1‘:‘a‘,‘2‘:‘b‘}
funcF(100,**args)
>>> {‘1‘: ‘a‘, ‘2‘: ‘b‘}
1:a
2:b