day10:函数的实参&形参

day10:函数的实参&形参,第1张

概述函数的参数 (参数:配合函数运算的值)参数: (1)形参:形式参数,在函数的定义处 (2)实参:实际参数,在函数的调用处 形参: 普通形参(位置) , 默认形参 , 普通收集形参 , 命名关键字形参

函数的参数 (参数:配合函数运算的值)
参数:
      (1)形参:形式参数,在函数的定义处
      (2)实参:实际参数,在函数的调用处

形参: 普通形参(位置),默认形参,普通收集形参,命名关键字形参,关键字收集形参
实参: 普通实参,关键字实参

遵循原则:
形参和实参要一一对应

1.普通形参

# 1.普通形参# 函数的定义处"""hang,lIE是函数的普通形参"""def s_star(hang,lIE):    i = 0    while i < hang:        j = 0        while j < lIE:            print("*",end="")            j+=1        print()        i+=1         函数的调用处10,10 是函数的实际参数"""s_star(10,10)s_star(3,8)

2.默认形参

 2.默认形参def s_star(hang=10,lIE=10):    i =在函数调用时:    如果给予实参,那么直接使用实际参数    如果没有给予实参,那么使用参数默认自带的值 s_star()  10行10列小星星s_star(3,8)  3行8列小星星s_star(4)  4行10列小星星

3.普通形参+默认形参 

默认形参必须跟在普通形参的身后,顺序是一定的

 3.普通形参 + 默认形参def s_star(hang,1)"> 函数的调用处s_star(3,3)  3行3列s_star(3)  3行10列s_star()  error

4.关键字实参

关键字实参是对具体的某个参数赋值,具体的顺序可以打乱

 4.关键字实参 函数的定义处()                i+=1 函数的调用处s_star(hang=4,a=1,b=2,c=3,d=4,lIE=5)s_star(c=3,lIE=5,hang=4,b=2)  关键字实参参数顺序可以打乱

5.普通实参+关键字实参

关键字实参必须跟在普通实参的身后,1)"> 5.普通实参 + 关键字实参 s_star(5,6,99,c=7,d=8,lIE=9)s_star(c=7,lIE=9,5,99) error 关键字实参必须跟在普通实参的后面s_star(5,1,c=2,d=3,lIE=10,b=5) oks_star(5,a=5) error 重复给a赋值,错误

6.要注意区分默认形参和关键字实参

默认参数和关键字实参 在写法上一模一样
默认形参是在函数的定义处
关键字实参是在函数的调用处

7.普通收集参数 *args

1.普通收集参数:    专门用来收集多余的没人要的普通实参    def func(*args):        code...    *args => arguments(参数)    在args这个参数的前面加上一个*表达普通收集参数,形成一个元组""" 基本使用def func(a,*args):    print(a,c)  1 2 3    print(args)  (4,7,8)    func(1,2,3,4,8) 计算任意个数的累加和def func(*args):    total =for i in args:        total += i    (total)    func(1,10,11,100)

8.关键字收集参数 **kwargs

2.关键字收集参数 : 专门用来收集多余的没人要的关键字实参    def func(**kwargs):        code1...    **kwargs => keyword arguments    在kwargs参数的前面加上2个**表达关键字收集参数,形成一个字典def func(a=1,**kwargs):    (a,c)    print(kwargs)  {'f': 1,'g': 2,'j': 3}func(f=1,g=2,j=3,a=15,b=16,c=17 任意个数字符串的拼接班长:宋云杰班花:刘彩霞班草:刘子涛吃瓜群众:牧树人,晏国彰,刘聪def func(**(kwargs)     定义一个字典,存放每一位同学的身份    dic = {monitor":班长class_flower班花class_grass班草"}    strvar1 =     strvar2 = ""         遍历字典中的键值对    for k,v  kwargs.items():        print(k,v)  monitor 宋云杰  class_flower 刘彩霞 class_grass 刘子涛 ....         判断键是否在字典当中,如果在,获取对应的身份,拼装成字符串        if k  dic:            strvar1 += dic[k] + :" + v + \n"  班长 + ":" + 宋云杰 + '\n'        else:            strvar2 += v + ,"         去掉右边多余的\n和,形成最后的效果    (strvar1.strip())    吃瓜群众:"+ strvar2.rstrip())    func(monitor=宋云杰刘彩霞刘子涛牧树人晏国彰刘聪")

9.命名关键字参数

 3.命名关键字参数定义命名关键字参数的两种方式:    (1)def func(a,*,c) c是命名关键字    (2)def func(*args,**kwargs) c是命名关键字参数    在函数调用时,必须使用命名关键字参数来进行赋值 定义方式一 1 2    print(d)  3    print(c)  10 定义方式二def func(*args,1)"> (1,6)     100     {'a': 1,'b': 2,'d': 6}func(1,d=6,c=100)

10.关于* 和 ** 的使用方法

* 和 ** 在函数的定义处,用来做收集 *** 作,打包
* 和 ** 在函数的调用处,1)">打散 *** 作,解包

 * 解包列表(c,d)  lst = [1,2] *把列表里面的所有元素拿出来,当成参数一个一个赋值给func进行调用func(*lst,d=4 ** 解包字典c":3,1)">d":4} **把字典里面的所有元素拿出来,拼装成键=值的参数形式,赋值给func进行调用func(1,**dic,)  func( c=3,d=4 ) *和**的组合func(*lst,1)">dic)strvar = abc"print(*strvar)

11.形参定义的顺序

当所有参数都在一起的时候,按照什么顺序定义呢?
参数定义的顺序:普通参数 -> 默认参数 -> 普通收集参数 -> 命名关键字参数 -> 关键字收集参数
收集到所有的实参: def func(*args,**kwargs)

12.关于所有参数混合的练习题

def f1(a,c=0,*args,1)">kw):    'a =',1)">b =c =args =kw ='def f2(a,1)">d = 以上两个函数 打印结果 第一题f1(1,2)  a=1,args=(),kw={}f1(1,c=3) ab') f2(1,d=99,ext=None)  第二题args = (1,4)kw = {': 99,1)">x': #}f1(*args,**kw)  第三题myargs = (1,3)mykw = {': 88,1)">}f2(*myargs,**mykw) a=1,d=88,kw={x:#} 第四题(d)f1(1,d=67,x=99,y=77)           总结       

以上是内存溢出为你收集整理的day10:函数的实参&形参全部内容,希望文章能够帮你解决day10:函数的实参&形参所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1190140.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存