python 函数
封装函数的好处:代码复用
1.语法:
def functionname(parameters):
#函数文档字符串
function_suite
return[expression]
2.无参函数:
>>> def print_str():
... print "hi"
...
3.有参函数--必备参数:
>>> def add(a,b):
... if isinstance(a,(int,long,float)) and isinstance(b,(int,long,float)):
... return a+b
... return None
... >>> print add(1,2) 3
(1)可变参数:
#coding=utf-8 a=[1]
def print_sth(s):
s.append(2)
return s
print print_sth(a) print a
(2)不可变参数:
#coding=utf-8 a=1
def print_sth(s):
s=s+1
return s
print print_sth(a)
print a
(3)命名参数:
>>> def add(x,y,z):
... return x+y+z
... >>> print add(2,z=3,y=4)
9
(4)缺省参数:
def say(message, times = 1):
print message * times
say('helloworld')
say(u'万岁!', 3)
(5)带返回值的函数:
#函数返回值,没有返回值的返回None
def add(operandA,operandB):
return float(operandA)+float(operandB)
(6)返回一个元组的函数
def func(a,b):
return(a,b)
print (5,6)
(7)可变参数的函数:
def get_old_num(*args): #参数是元组
list1=[]
for i in args:
if isinstance(i,int):
if i%2 !=0:
list1.append(i)
else:
continue
return tuple(list1)
print get_old_num(1,2,3,4,"a","b")
def fun2(a,b=100,*args,**keys): #参数是元组、字典
print "keys type=%s" % type(keys)
print "keys=%s" % str(keys)
print "name=%s" % str(keys['name'])
print "sex=%s" % str(keys['sex'])
sum=0
for i in args:
sum+=i
print sum+a+b
fun2(1,2,3,4,name="vp",age=19,sex="m")