函数及其参数
#_author:laitongxing
#date:2019/11/1
#函数
#1.函数作用:
# (1).减少重复代码
#(2).方便修改,更易扩展
#(3).保持代码的一致性
#2.函数的定义
#(1)
def f():
print('ok')
f()#调用一定要加() ok
#(2)
def function(number):
print('function %s'%number)
function(1)#function 1
#(3)
def add(a,b):
print(a+b)
add(3,9) #12
def A(b,a):
print(a)#2
print(b)#6
A(6,2)
#3.函数的参数
#(1)必须参数
def print_info(name,age):
print('Name: %s'%name)
print('Age: %d'%age)
print_info('star',22)
#(2)关键字参数
print_info(age=23,name='li')
print_info(name='wei',age=23)
print('----------------------')
#(3)默认参数
def print_info1(name,age,sex='male'):#默认参数跟在其他参数后面
print('Name: %s'%name)
print('Age: %d'%age)
print('Sex: %s'%sex)
print_info1('star',22)
print_info1('yu',22,'female')
print('----------------------')
#(4)不定参数
#关于不定长参数的位置,args放在前面,kwargs放在后面
#(4-1)无命名参数
def f_add(*args):
print(args)
f_add(1,2)#(1, 2) args参数是一个元组,是一个可迭代对象
print('----------------------')
def f_add(*args):#对元组进行遍历
sum=0
for i in args:
sum+=i
print(sum)
f_add(1,2,4,5,6,7,8)# 33
#(4-2)命名参数
def print_info1(*args,**kwargs):#
print(args)#('star', 22, 'male')
print(kwargs)# {'job': 'it', 'hobby': 'girls'}
print_info1('star',22,'male',job='it',hobby='girls')
print('----------------------')
def print_info2(**kwargs):
print(kwargs) # {'job': 'it', 'hobby': 'girls'}
for i in kwargs:
print('%s:%s'%(i,kwargs[i]))
print_info2(job='it',hobby='girls')
# job:it
# hobby:girls
print('----------------------')
def print_info3(sex='male',*args,**kwargs):#默认参数放在前面是因为后面两个不定长参数有可能为空
print(args) #如果有默认参数放最左边
print(kwargs) #
for i in kwargs:
print('%s:%s'%(i,kwargs[i]))
print_info3()
# ()
# {}
print('----------------------')
print_info3('female',1,2,3,)#female 没有打印
# (1, 2, 3)
# {}
print('----------------------')
print_info3(1,2,34,'female')
# (2, 34, 'female')
# {}
#参数优先级顺序
#def function(name,sex='male',*args,**kwargs)