一.函数参数的分类

  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. Hibernate配置关系(申明:来源于csdn)

    hibernate中多对一.一对一.一对多.多对多的配置方法 地址:http://blog.csdn.net/communicate_/article/details/8445437

  2. Elasticsearch学习笔记(六)核心概念和分片shard机制

    一.核心概念 1.近实时(Near Realtime NRT) (1)从写入数据到数据可以被搜索到有一个小延迟(大概1秒): (2)基于es执行搜索和分析可以达到秒级 2.集群(Cluster) 一个 ...

  3. 2019.04.13 python基础

    第一节    主要讲python背景  没什么要注意的  了解记住概念就好 python官网  python.org  自带shell  可以运行python代码 在IDLE中怎么运行代码 新建文本  ...

  4. 2018-2019-1 20189203《Linux内核原理与分析》第三周作业

    一.课程学习 计算机的三个法宝:存储程序计算机.函数调用堆栈.中断. 堆栈相关的寄存器:ESP(堆栈指针).EBP(基址指针). 堆栈操作:push:栈顶地址减少4个字节,并将操作数放入栈顶存储单元. ...

  5. ionic 需要注意的知识点

  6. node(03)--利用 HTTP 模块 URl 模块 PATH 模块 FS 模块创建一个 WEB 服务器

    Web 服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等 Web 客户端提供文档,也可以放置网站文件,让全世界浏览:可以放置数据文件,让全世界下载.目前最主流的三个 We ...

  7. cocos2dx JS layuot纯代码实现背景颜色渐变

    // view._partyBtnClassify.setBackGroundColorType(ccui.Layout.BG_COLOR_GRADIENT);// view._partyBtnCla ...

  8. Linux 命令整理 (有不正确的随时补充)

    du 概述: Linux下命令,统计目录(或文件)所占磁盘空间的大小. 语法: du[-abcDhHklmsSx][-L<符号连接>][-X<文件>][--block-size ...

  9. ASP.NET MVC案例教程(五)

    ASP.NET MVC案例教程(四) 前言 通过前几篇文章,我们已经能比较自如的使用ASP.NET MVC来呈现页面和数据了.但是,有一个大问题没有解决:如何处理表单数据.例如,我们将要实现的公告发布 ...

  10. CentOS7+Apache+MySQL+PHP环境

    Apache 1.安装Apache:yum -y install httpd 2.开启apache服务:systemctl start httpd.service 3.设置apache服务开机启动:s ...