函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段,能提高应用的模块性,和代码的重复利用率。
1)函数的一般形式
函数定义:def 函数名()
函数调用:函数名()
定义函数的简单规则:
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号(),函数名不能使用关键字。
- 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
- 函数内容以冒号起始,并且缩进。
- return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
# 定义函数
def
sum
(x
,
y):
print
(
'x={0}'
.format(x))
print
(
'y={0}'
.format(y))
return
x+y
m = sum(
10
,
3
)
#调用函数,参数值和参数名称是按函数声明中定义的的顺序匹配起来的
#m = sum(x=10,y=3) #结果同上
print
(m)
2)函数的参数
函数的参数按照定义和传递的情况时分为形式参数和实际参数。
在定义函数时,函数名后面括号中的变量名称叫做形式参数,或者称为形参。
在调用函数时,函数名后面括号中的变量名称叫做实际参数,或者称为实参。
*args和 **kwargs:
*args对应的是元组,可接收多个参数;
**kwargs对应的是字典,可接收多个为key=value形式的参数。
# 1.给b变量设定一个默认的值
# 如果实参传入的时候,指定了b的值,那b优先选择传入的实参,当b没有传入值时才会使用默认值b=0,默认参数设置必须放在参数的最后
def funA(a,b=0):
print a
print b
funA(10)
运行结果如下:
10
0
# 2.参数为tuple
def funB(a,b,*c): #加了星号(*)的变量名会存放所有未命名的变量参数,并以元组的形式处理
print a
print b
print 'length of c is : %d' % len(c)
print c
funB(1,2,3,4,5,6)
运行结果如下:
1
2
length of c is : 4
(3, 4, 5, 6)
# 3.参数为dict
def funC(a,**b):
print a
print b
funC(100,x='hello',b='world')
运行结果如下:
100
{'x': 'hello', 'b': 'world'}