函数--参数及注释

函数的传参

参数划分

  • 形参
    • 写在函数声明的位置的变量叫形参,形式上的一个完整,表示这个函数需要xxx
  • 实参
    • 在函数调用的时候给参数传递的值叫实参
def meet(sex):		#sex:形参
    print("性别:%s"%(sex))
meet("男")			#"男":实参

def func(a:int,b:str)	#形参跟的数据类型只是个提示,没有约束性
	pass
func(1,2)

实参

  • 位置参数
def meet(sex,old,happy):
    print("性别:%s,年龄:%s,爱好:%s"%(sex,old,happy))
meet("男",10,"篮球")

#根据参数位置,从左到右,一一对应
  • 关键字参数
def meet(sex,old,happy):
    print("性别:%s,年龄:%s,爱好:%s"%(sex,old,happy))
meet(sex="男",old=10,happy="篮球")

#一一对应,可以打乱顺序
  • 混合传参
def meet(sex,old,happy):
    print("性别:%s,年龄:%s,爱好:%s"%(sex,old,happy))
meet("男",10,happy="篮球")

#既有位置参数又有关键字参数
#位置参数要在关键字参数之前,否则会报错

形参

  • 位置参数 与实参角度的位置参数是一种
  • 优先级:位置>默认值
  • 默认值参数:形参是默认参数时,实参可以不必传递

三元运算符

只针对if 。。。else。。。

#格式:条件成立的结果 if 条件判断 else 条件不成立的结果

a = 1000
b = 2000
c = a if a > b else b
print(c)


def complie(a,b):
    return a if a > b else b
print(complie(10,20))

枚举

  • 描述
    • enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标
  • 语法
    • enumerate(sequence,[strart=0])
  • 参数
    • sequence:一个序列、迭代器或其他支持迭代对象
    • start:下标起始位置
  • 返回值
    • 返回enumerate(枚举)对象
lst = [1,2,3,4,5]
dic = {}
for k,v in enumerate(lst,10):
    dic[k] = v
print(dic)

函数的动态参数

形参的第三种参数:动态参数

  • 动态接收位置参数:*args
    • * 在函数定义的时候叫聚合
    • args 可以更改,最好保持不变
  • 位置参数>动态位置参数
def func(a,b,*args):
    print(a,b,args)
func(1,2,3,4,5,6,7)

def func(a,b,*args):	#*args:聚合
    print(a,b,*args)	#*args:打散--原数据类型
func(1,2,3,4,5,6,7)

def func(*args,a=1,b=2):
    print(a,b,*args)
func(1,2,3,4,5,6,7)
#上面这种情况关键字参数要放在动态参数后面

lst = [1,2,3,4,5,6]
def func(*args):
    print(*args)
func(*lst)
#传参数的时候先打散,不做为一体传入,在函数里再用打散可以获取单个元素
  • 动态接收关键字参数:**kwargs
def func(a,b,**kwargs):
    print(a,b,kwargs)	#打印出字典,加一个*取出的是键,不能打散
func(1,2,c=5,d=7)

#运行结果
1 2 {'c': 5, 'd': 7}


def func(a,b,*args,c=1,d=2,**kwargs):
    print(a,b,args,c,d,kwargs)
func(1,2,3,4,5,6,7,8,e=0,f=5)


dic = {"1":2,"4":"a","3":4}
def func(**kwargs):
    print(kwargs)
func(**dic)	#先打散在传入
  • 万能传参(常用)
def func(*args,**kwargs):
    print(args,kwargs)
func(1,2,3,4,5,6,a=8,b=9)
  • 形参顺序

    位置参数 、*args 、默认参数 、**kwargs

函数的注释

def func(a,b):
    """
    函数作用
    :param a: 参数说明
    :param b: 参数说明
    :return:  返回值说明
    """
    pass
    

print(func.__doc__)		#打印函数的注释信息
posted @ 2019-07-19 15:38  忘川的彼岸  阅读(1516)  评论(0编辑  收藏  举报