三元表达式
符合python语法的表达方式(形式,公式)称之为表达式
三元:三个元素
总体就是,由三个元素组成表达式
其目的是为了简化书写,既然是简化必然有局限性
三元表达式只能帮你简化仅有两个分支的if判断,并且这个判断无论成立与否都必须返回一个值
递归
递归指的是递归调用,简单地说就是一个函数在执行过程中又直接或间接的调用了该函数本身 递归时可能出现以下错误
RecursionError: maximum recursion depth exceeded while calling a Python object
在调用函数时超出了最大递归深度
python为了防止递归太多导致内存溢出,所以给递归调用加上了深度(次数)限制,默认1000 递归调用本质上就是在循环执行代码,与不同循环不同的是,函数调用,会产生一系列内存开销,所以就会导致内存溢出,
而循环则没有这个问题
如此一来,则表示所有递归能干的事情循环也能干 在使用递归时要注意:
1.一定要在某个条件满足时结束循环调用
2.循环调用的次数不能超过系统的限制
3.每一次执行函数都应该使问题的规模减少,否则就是无用的循环
4.python中没有尾递归优化机制(使得递归调用占用的开销更小) 在使用递归完成遍历所有元素(不知道有几层)时,可以发现,递归使用起来,代码量更少,并且代码结构更加清晰
什么时候该使用递归:
你不知道到底要循环几次
匿名函数
匿名指的就是没有名字
其最明显的特点是
有名字的值可以多次使用,多次访问
而没有名字的值,只能临时使用一次,用完就没了
匿名函数与有名函数的区别
关键字为lambda
参数不需要括号,并且支持所有类型的参数
名称空间与作用域关系完全相同
函数体中不能写return,会自动将执行结果返回
函数体只能有一个表达式且不能换行
匿名函数什么时候使用
当你的函数体只有一行表达式时并且只使用一次时就可以作为匿名函数
更多的是与内置函数连用(max,min,sorted,map,filter,reduce)

day15的更多相关文章

  1. day15<集合框架>

    集合框架(对象数组的概述和使用) 集合框架(集合的由来及集合继承体系图) 集合框架(Collection集合的基本功能测试) 集合框架(集合的遍历之集合转数组遍历) 集合框架(Collection集合 ...

  2. 一起学 Java(三) 集合框架、数据结构、泛型

    一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...

  3. 【目录】JUC集合框架目录

    JUC集合框架的目录整理如下: 1. [JUC]JUC集合框架综述 2. [JUC]JDK1.8源码分析之ConcurrentHashMap(一) 3. [JUC]JDK1.8源码分析之Concurr ...

  4. java面试题——集合框架

    先来看一下集合框架关系图 Collection FrameWork 如下: Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └S ...

  5. Java使用实现面向对象编程:第七章集合框架的解读=>重中之重

    对于集合框架,是非常重要的知识,是程序员必须要知道的知识点. 但是我们为什么要引入集合框架呢? 我们之前用过数组存储数据,但是采用数组存储存在了很多的缺陷.而现在我们引用了集合框架,可以完全弥补了数组 ...

  6. Java集合框架List,Map,Set等全面介绍

    Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I]   +--java.util.ArrayList [C]   +- ...

  7. Java集合框架练习-计算表达式的值

    最近在看<算法>这本书,正好看到一个计算表达式的问题,于是就打算写一下,也正好熟悉一下Java集合框架的使用,大致测试了一下,没啥问题. import java.util.*; /* * ...

  8. Java 之 集合框架(JCF)

    1.集合框架 a.框架:为了实现某一目的或功能,而预先提供的一系列封装好的.具有继承或实现关系的类与集合 b.集合:①定义:Java中对一些数据结构和算法进行封装,即封装(集合也是一种对象) ②特点: ...

  9. 【集合框架】Java集合框架综述

    一.前言 现笔者打算做关于Java集合框架的教程,具体是打算分析Java源码,因为平时在写程序的过程中用Java集合特别频繁,但是对于里面一些具体的原理还没有进行很好的梳理,所以拟从源码的角度去熟悉梳 ...

  10. 【集合框架】JDK1.8源码分析之Comparable && Comparator(九)

    一.前言 在Java集合框架里面,各种集合的操作很大程度上都离不开Comparable和Comparator,虽然它们与集合没有显示的关系,但是它们只有在集合里面的时候才能发挥最大的威力.下面是开始我 ...

随机推荐

  1. Express全系列教程之(一):Express的安装 和第一个程序

    前言 ndoe.js,一个基于javsscript运行环境的服务器语言,它的出现使得javascript有能力去实现服务器操作.在gitHub上ndoe.js的star数已接近6万,可见其受欢迎程度: ...

  2. cygwin的sh: line 15: $'\r': command not found错误

    安装dos2unix工具,转换一下sh文件即可 apt-cyg install dos2unix dos2unix xxx.sh

  3. css实现三角形相关

    1.css样式面包屑导航条实现矩形和三角箭头拼接 .cssTest { font-family: PingFangSC-Regular; font-size: 16px; color: #333333 ...

  4. 6、jeecg 笔记之 自定义excel 模板导出(一)

    1.前言 jeecg 中已经自带 excel 的导出导出功能,其所使用的是 easypoi,尽管所导出的 excel 能满足大部分需求, 但总是有需要用到自定义 excel 导出模板,下文所用到的皆是 ...

  5. Linux系统(四)LVS集群负载均衡NAT模式

    序言 提到LVS,就从章文嵩博士开始吧,反正也不知道如何下笔来写这一篇.章大博士,读博时候创建这个lvs软件项目,但是他提倡开源精神,在用户的建议和反馈中,这个花了他两周时间开发的开源软件不断得到改建 ...

  6. datetime模块处理时间

    python常用的处理时间的库有:datetime,time,calendar.datetime库包括了date(储存日期:(年.月.日),time(储存时间:(小时.分.秒和微秒),timedelt ...

  7. windows 下面make的使用示例

    ---恢复内容开始--- 前面已经安装了windows下面的编译器g++和mingw32-make,下面就make做个示例说明 1.文档结构 |--src       |--comm          ...

  8. git----------如何安装gitlab,使用步骤。

    1.配置yum源        vim /etc/yum.repos.d/gitlab-ce.repo 2.复制以下内容到打开的文件中: [gitlab-ce]     name=Gitlab CE ...

  9. Go 初体验 - 常量 与 iota

    常量的概念跟大多数语言一样,都是定义一个不可变的数值 go 语言支持常量,但没有 C# 中的枚举类型,所以常量在 go 语言里多用于枚举 上代码,有注释 输出: 在来看这个代码: 注释已说明结果 io ...

  10. WEB服务器,TOMCAT和servlet之间的关系

    WEB服务器,TOMCAT和servlet之间的关系 什么是WEB服务器Web服务器是指能够为发出请求的浏览器提供文档的程序.服务器是 一种被动程序,只有浏览器发出请求的时候才会响应.应用层使用 的是 ...