一.函数参数的分类

  1.实参:调用参数,在括号内传入的实际值,值可以为常量、变量、表达式或三者的组合

  2.形参:定义函数时,在括号内声明的变量名,用来接受外界传来的值

    注意:形参随着函数的调用而产生,随着调用结束而销毁 

二.函数的实参

  1.位置实参:不用明确形参名的传参方式,一定按照位置给形参传值

  2.关键字实参:必须明确形参名字与值为形参传值,可以不用按照为宗旨

  3.注意:    

    1.关键字实参必须出现在位置实参后
    2.多个位置实参还是按照位置传参
    3.关键字实参为没有从位置实参拿到值的形参传值,可以不用按照指定顺序

      def fn2(a, b, c, d, e, f):

        print(a, b, c, d, e, f)

      fn2(10, 20, 30, e=100, f=500, d=200)

三.函数的形参

  3.1 位置形参的范畴

        1.位置形参 

      def fn(a, b, c):
        print(a, b, c)
     位置形参可以由 位置实参 与 关键字实参 来传值
      fn(10, 20, 30)
      fn(a=10, b=20, c=30)

    2.默认形参      

      def fn(a=10,b=20):
        print(a, b)

     默认形参可以由 位置实参 与 关键字实参 来传值,还可以不用传值(采用自身默认值)
      fn()
      fn(20, 30)
      fn(a=200, b=300)
      fn(100) # 就给a传
      fn(b=100) # 就给b传

     2.1 混用
      位置形参与默认形参同时存在,默认形参必须在后
      def fn1(a,b,c=10,d=20):
        print(a, b, c, d)

      位置形参必须传值,默认形参分情况传值
      fn1(100, 200, d=1000)

    3.可变长形参  

       可变长形参会以 元组 形式接受 位置形参与默认形参未接受完的 所有传入的位置实参,用索引来取第几个
       可变长形参只能由 位置实参 来传值 
        def fn(a, b=10, *args):
          print(a, b)
          print(args)

      小细节:可变长形参只能接受位置实参的值,位置实参还必须在关键字实参前,
      导致默认形参只能由位置实参来传值
      fn(1, 20, 100, 200) # 1给a 20给b,不能用b=20传 100,200给args 

  3.3 关键字形参的范畴 

    前提:出现在 * 之后的形参
    def fn(a, b=10, *, c, d=20, e):
      pass
     c,d,e都是出现在*之后,都是关键字形参,由于必须由 关键字实参 来传值,没有顺序的强行要求

    可变长关键字形参:用来接收没有被关键字形参接收完的关键字形参,也只能由关键字实参来传值
    用字典来存放数据
      def fn(**kwargs):
        print(kwargs)

      fn(a=10,b=20) # {'a': 10, 'b': 20}

      dic = {'x': 100, 'y': 200}
      fn(**dic) # {'x': 100, 'y': 200}

四.参数总结  

  def fn(a, b, c=10, *args, d, e=20, f, **kwargs):
    pass
  位置形参:a、b
  默认形参:c
  可变长位置形参:args
  无初值关键字形参:d、f
  有初值关键字形参:e
  可变长关键字参数:kwargs

  1.位置形参与默认形参: 能用 位置实参 关键字实参 传值
  2.可变长位置形参:只能 位置实参 传值
  3.所以关键字形参:只能 关键字实参 传值

  *全局变量当做关键字参数结果传入时在下方再改变不会影响函数的输出

    y = 40

    def aaa(arg=y):

      print(y)

      print(arg)

    aaa()

   #40

     20

    

DAY10 函数的参数的更多相关文章

  1. Python—day10 函数的参数分类

    一.实参与形参 1.形参:定义函数,在括号内声明的变量名,用来接受外界传来的值 def fn(形参们):                pass def fn(a,b,c):# 形参就是考虑实参的值, ...

  2. 【学习笔记】--- 老男孩学Python,day10, 函数, 动态参数 命名空间\作用域 global nonlocal

    1. 动态参数 位置参数的动态参数: *args 关键字参数的动态参数 : **kwargs 顺序:位置---*args---默认值---**kwargs 在形参上*聚合, **聚合 在实参上*打散, ...

  3. day10.函数,函数的参数

    函数的思维导图: 老师的笔记 昨天内容概括 #组长:默写统一交给组长 #不建议看视频 #上课敲过的所有的例子 # 1.看一遍.看能不能看懂 # 2.给每一道题起一个名字或者一句描述 # 3.看着文字, ...

  4. day10 python之函数的参数

    函数的基本属性 1.1 函数的含义 # 1.功能 :包裹代码,实现功能,达到目的 # 2.特点 :反复调用,提高开发效率,便于代码维护 1.1.2 函数的基本格式 # 函数名 :变量命名规则 # 函数 ...

  5. day10.函数基础及函数参数

    一.函数 功能:包裹一部分代码 实现某一个功能 达成某一个目的 特点: """ 特点:可以反复调用,提高代码的复用性,提高开发效率,便于维护管理 函数基本格式 函数的定义 ...

  6. day10.函数进阶

    函数的命名空间 从python解释器开始执行之后,就在内存中开辟了一个空间,每当遇到一个变量的时候,就把变量名和值之间的对应关系记录下来. 但是当遇到函数定义的时候解释器只是象征性的将函数名读入内存, ...

  7. 如何理解javaSript中函数的参数是按值传递

    本文是我基于红宝书<Javascript高级程序设计>中的第四章,4.1.3传递参数小节P70,进一步理解javaSript中函数的参数,当传递的参数是对象时的传递方式. (结合资料的个人 ...

  8. c#编程基础之函数可变参数

    可变参数:int sum (params int[] values)int sum (string name,params int[] values) 注意:params参数必须是形参表中的最后一个参 ...

  9. 函数动态参数实现format

    变量赋值一种是字符串格式化,一种是通过format的方式 1.字符串格式化 s="i am %s,age %d"%('Jasper',23)print(s) 打印输出:i am J ...

随机推荐

  1. Cardinal and Ordinal Numbers

    Cardinal Numbers Table of Cardinal Numbers Cardinal numbers from 1 through 1,000,000 1 one 11 eleven ...

  2. 使用iostat查看磁盘使用情况

    Ⅰ.iostat安装 [root@VM_42_63_centos ~]# yum install -y sysstat Ⅱ.玩一手 [root@VM_42_63_centos ~]# iostat - ...

  3. Web开发——HTML基础(图像、音频和视频内容)

    参考: 参考:HTML中的图像 参考:视频和音频内容 目录: 1.HTML中的图像 1.1 我们如何在网页上放置图像? (1)替代文字(alt) (2)宽度和高度 (3)图片标题 1.2 用图形和图形 ...

  4. 分析Hello2代码

    代码如下String username = request.getParameter("username"); if (username != null && us ...

  5. 模拟器中安装APK报Error:INSTALL_FAILED_NO_MATCHING_ABIS

    1.启动AVD Manager.exe 2.将APP的安装包.apk直接拖到模拟器中,报错 3.原来是代码里由于大小限制只开放了armeabi-v7a这个ABI,但创建的模拟机支持的CPU是其他类型的 ...

  6. Java之事务的基本应用

    基本介绍 事务是数据一致性最基本的保证,也就是说一个事务中的操作要么都成功,要么都失败,不允许部分成功.我们常说的事务就是jdbc事务,当然Java中还有其他事务,并且在使用jdbc事务有很多注意点, ...

  7. Luogu4451 [国家集训队]整数的lqp拆分

    题目链接:洛谷 题目大意:求对于所有$n$的拆分$a_i$,使得$\sum_{i=1}^ma_i=n$,$\prod_{i=1}^mf_{a_i}$之和.其中$f_i$为斐波那契数列的第$i$项. 数 ...

  8. Selenium 2(Webdriver)

    如何用webdriver打开一个浏览器,我们常用的浏览器有firefox和IE两种,firefox是selenium支持得比较成熟的浏览器,很多新的特性都会在firefox中体现.但是做页面的测试,启 ...

  9. docker+kafka+zookeeper+zipkin的安装

    1. 启动zookeeper容器 docker search zookeeper docker pull wurstmeister/zookeeper docker run -d --name zoo ...

  10. python进阶(四) windows下虚拟环境使用

    虚拟环境作用: 1. 通常开发一个项目,会安装很多的第三方包,这时第三方包我们是安装在本机环境的.那么如果项目进行部署或移植的时候是不是要重新安装这些包???? 2.开发环境,同时在做两相项目,同时要 ...