函数默认参数

默认参数概念

  默认参数指函数/方法在定义时为形参赋值,对应的形参称为默认参数

  默认参数是一个参数定义期的概念,与调用无关

默认参数作用

  如果参数定义默认参数,在调用函数/方法时,未对该参数进行传值,则使用默认值作为该参数的值

默认参数基本语法

定义格式:

  def 函数名(形参1 = 值1,…):

    函数体   

    ……

调用格式一(同普通参数,无特殊):

  函数名(实参) 使用实参作为形参的值,不使用默认值

调用格式二:

  函数名()使用默认值作为形参的值

  

注意事项

  1.默认参数的定义必须在位置参数的右侧

  

  2.默认参数在调用传值时,按照位置参数进行对待,从左至右依次赋值,不能跳过左侧的某个参数直接为后面的参数赋值

  

关键字参数

关键字参数概念

  函数/方法在调用时为指定名称的形参进行赋值,对应实参称关键字参数

  关键字参数是一个参数调用期的概念,与定义无关

关键字参数作用

  按名称确认实参为指定的形参赋值

关键字参数基本语法

  定义格式(同普通参数定义,无特殊):

    def 函数名(形参 ,…):

      函数体   

         ……

  调用格式:

    函数名( 形参名 = 实参)

  

注意事项

  1.关键字参数必须出现在位置参数的后面

   

  2.不允许使用关键字参数对同一个形参进行多次赋值

   

  

  3.关键字参数既可以为位置参数赋值,也可以为默认参数赋值。通常使用关键字参数解决默认参数选择性赋值问题

可变参数

可变参数概念

  函数/方法在定义时,定义一个特殊的形参,用于接收调用时传入的任意数量的实参,对应的形参称为可变参数

  可变参数是一个参数定义期与调用期都有效的概念

可变参数作用

  简化函数定义过程,定义可以接收无数个实参的形参

  形参接受到的数据,无论数量多少,包装成一个元组对象

可变参数基本语法

  定义格式:

    def 函数名(*args ,…):

      函数体   

      ……

   

  调用格式(同普通参数,无特殊):

    函数名( 实参1,…… )

  

注意事项

  1.可变参数在一个函数/方法定义中只能出现一个

   

  2.可变参数只能出现在位置参数的后面,位置参数在左侧,可变参数在右侧

   

  3.关键字参数只能出现在位置参数的后面,赋值时必须使用关键字参数传值,否则值会被可变参数接收

   

  4.定义函数的参数时,先定义位置参数,再定义可变参数,最后定义默认参数

  

字典参数

字典参数概念

  函数/方法在定义时,定义一个特殊的形参,用于接收未定义直接使用的关键字参数,对应的形参称为字典参数

字典参数作用

  简化函数定义过程,接收未定义直接使用的关键字参数

  在多层级调用间进行关键字参数的逐级传递

  未定义的关键字参数,无论数量多少,接收后包装成一个字典对象

字典参数基本语法

定义格式:

  def 函数名(**kwargs ,…):

    函数体   

       ……

调用格式:

  函数名( 未定义的变量名1 = 实参1,未定义的变量名2 = 实参2,…… )

  

注意事项

  1.字典参数在一个函数/方法定义中只能出现一个

   

  2.定义函数的参数时,先定义位置参数,再定义可变参数,然后定义默认参数,最后定义字典参数

  

其他

  所有的容器都支持解包操作,格式:*容器变量名

递归函数

递归函数概念

  函数/方法在执行过程中出现了对自身函数/方法的调用,称该过程为递归调用,称这样的函数为递归函数。

递归函数基本语法

  同普通函数

递归函数定义要求

  1.函数体中具有对自身函数的调用

  2.函数体中具有明确的函数执行结束判定条件

递归函数调用要求

  Python语言中函数调用最大层级为1000层,超过该层级,程序将报错(不同语言设置不同)

匿名函数

匿名函数概念

  匿名函数即没有名称的函数,在python语言中,匿名函数是使用lambda关键字定义的一个特殊表达式,也称为lambda表达式

匿名函数基本语法

格式一:

  定义: 函数名 = lambda 形参 : 返回值

  调用: 结果 = 函数名(实参)

  

格式二:

  定义并调用: 结果 = (lambda 形参 : 返回值)(实参)

  

匿名函数特殊语法

  无参格式: 结果 = (lambda :返回值)()

   

  多返回值格式: 无,可使用数据存储模型返回多个数据

  无返回值格式: 无,必须有具体值或结果为None

  

转载于:https://www.cnblogs.com/sickle/p/10116272.html

python回顾(九)——函数高级,递归函数,匿名函数相关推荐

  1. python小代码13(递归函数匿名函数)

    什么是递归函数? 在函数内部,可以调用其他函数. 如果一个函数在内部调用自身本身,这个函数就是递归函数. 任务一:小孩的报酬* 任务内容: 一个小孩子给一个富翁做事,商量的报酬是第一天2角,第二天是第 ...

  2. python列表生成式内必须定义匿名函数_Python基础-----基础概念总结

    Python基础-----基础概念总结 Python程序的构成 构成图 行连接符:\ 对象基本构成和内存示意图 对象及其引用(变量) 标识符 基本用法 命名规则 变量和简单的赋值语句 变量声明必须初始 ...

  3. 深入浅析Python 函数注解与匿名函数

    函数注解与匿名函数 关于函数参数的定义,调用以及函数参数的内容 函数注解 在编写函数,当下肯定清楚函数如何使用的.若是函数较为复杂,过段时间,编写者有可能需要花一段时间去重新了解函数的使用,那其他使用 ...

  4. python 函数递归_Python零基础之三元表达式、函数递归、匿名函数教程!超级详细!...

    目录 一.三元表达式 二.函数递归 递归调用的定义 递归分为两个阶段:递归,回溯 三.匿名函数 什么是匿名函数? 有名字的函数与匿名函数的对比 lambda匿名函数的应用 四.内置函数 #注意:内置函 ...

  5. Python的程序结构[4] - 函数/Function[2] - 匿名函数

    匿名函数 / Anonymous Function 匿名函数是一种不需要绑定函数名的函数 (i.e. functions that are not bound to a name).匿名函数通过 la ...

  6. JavaScript 函数声明,函数表达式,匿名函数,立即执行函数之区别

    函数声明:function fnName () {-};使用function关键字声明一个函数,再指定一个函数名,叫函数声明. 函数表达式 var fnName = function () {-};使 ...

  7. js进阶ajax函数封装(匿名函数作为参数传递)(封装函数引入文件的方式非常好用)...

    js进阶ajax函数封装(匿名函数作为参数传递)(封装函数引入文件的方式非常好用) 一.总结 2.匿名函数作为参数传递 二.js进阶ajax函数封装 ajax1.js 1 function ajax( ...

  8. 函数声明、函数表达式、匿名函数、立即执行函数

    函数声明:function fnName () {-};使用function关键字声明一个函数,再指定一个函数名,叫函数声明. 函数表达式 var fnName = function () {-};使 ...

  9. linux 运行函数名,JavaScript匿名函数的各种执行形式

    近期在研究Pomelo源码,这个框架基于Node.js,所以非要频繁地与JavaScript脚本打交道不可.因此,本文中我们来总结 JavaScript语言中匿名函数的主要目的及各种存在形式.其实,匿 ...

最新文章

  1. 关于cast类型转换后无法使用索引的优化
  2. (转帖)对抽象编程:接口和抽象类
  3. 揭秘!微软 Build 2020 开发者大会将启,邀您共赴线上新旅程
  4. 怎样取消苹果手机x的静音设置_安卓不仿苹果静音键?千万别小瞧“静音键”, 功能竟如此强悍!...
  5. 坐飞机也能享受百兆宽带了,这个技术是怎么实现的?
  6. C语言深入浅出可变参数函数的使用技巧(转)
  7. java超市管理系统增删改查,超市管理系统java程序设计报告(图文完整)
  8. EXP-00091: Exporting questionable statistics. 解决
  9. 如何在twitter上看片_我在Twitter上一年学到的东西
  10. Wifi热点java_Wifi热点实现文件传输
  11. Flask Template ( 模板学习)
  12. Java学习day07-Java高级编程-多线程
  13. linux系统防火墙关闭22端口,Linux系统防火墙关闭及端口开放
  14. centos执行yum命令报错,There are no enable repos
  15. Delphi Web前端开发教程(9):基于TMS WEB Core框架
  16. Day_04 传智健康项目-预约管理-套餐管理
  17. php调色板快捷键,ps常用的调色快捷键有哪些?
  18. 测试中缺陷的管理流程
  19. freeswitch控制台常用命令
  20. 2.BJDCTF(2020第二届)——Misc杂项题

热门文章

  1. 126. Word Ladder II
  2. Stark 组件:快速开发神器 —— 模板设计
  3. 【Tools】RDB打包工具详解
  4. 【Linux】一步一步学Linux——pwd命令(19)
  5. 【SDL】 如何在RedHat6.5中搭建SDL开发环境
  6. php远程文件包含攻击,利用SMB共享来绕过php远程文件包含的限制
  7. python 东哥 with open_Python一行代码搞定炫酷可视化,你需要了解一下Cufflinks
  8. Codeforces 1479A. Searching Local Minimum(注意输入+二分)
  9. Redis源码剖析(十)简单动态字符串sds
  10. on java8学习笔记2022.2.19-2022.2.20