Python自学笔记(10day)

函数的形参和实参

def func(s):
    i=0
    for k in s
        i+=1
    return i


print(func("帅哥"))

(1)形参与实参

  S:    形参,用来接收调用函数中的实参

  帅哥:  实参,调用函数会将实参传入到形参

注意:有几个形参就要对应几个实参,默认参数除外。

 

(2)形参定义规则

 (1)形参可以传入如下几种参数:

      (1)   位置参数:  如  func(a,b,c)

      (2) 默认参数:  如  func(a, b="帅哥")  ,其中b="帅哥"为默认参数,当有默认参数时,调用函数可以不传入默认参数对应的实参位置,不传入,默认为默认参数值,传入则会覆盖掉默认参数值。

def sum(a,b=1):
    res=a+b
    return res

ret=sum(1,2)
print(ret)
#输出:3,因为将1,2分别赋值给a,b
def sum(a,b=1):
    res=a+b
    return res

ret=sum(1)
print(ret)
#输出:2,因为将1赋值给a,b为默认参数没有传入实参还是为1

     (3) 关键字参数: 如 func(a="帅哥,b="然然") 

     (4) 动态参数: 

        1.*args : 接收多个位置参数,返回的是元祖形式

        2. **kwargs: 接收多个关键字参数,返回的是字典形式

def func(*args):
    return (*args)

print(func(1,2,3))

#输出:(1,2,3)
def func(*kwargs):
    return (*kwargs)

print(func(a="帅哥",b="然然"))

#输出:{"a":"帅哥","b":"然然"}

 

             (2)形参传入参数的顺序

      func(位置参数 , *args, 默认参数 , **kwargs)

(3)实参的定义规则

  (1)实参可以传入如下几种参数

     1.位置参数

        2.关键字参数

     3.混合参数:顺序必须是,位置参数,关键字参数,与形参顺序一致

      

(4)动态参数传入的另一种表达形式

  (1)*args    对列表加上一个  * 号,将列表打散,用形参接收重组

def func(*args):
    print(args)

func(1,2,3)
l=[1,2,3]
func(*l)
# 输出:(
1,2,3) (1,2,,3)

(2) **kwargs   用**  打散字典用形参接收重组

def func(**kwargs):
    print(kwargs)

func(a="帅哥",b="小伙")
dict={'a':"帅哥",'b':"小伙"}
func(**l)
# 输出:{'a':"帅哥",'b':"小伙"}
#    {'a':"帅哥",'b':"小伙"}
      

 

posted @ 2018-09-15 19:26  诺诺诺亚索隆  阅读(138)  评论(0编辑  收藏  举报