摘要:嵌套函数: 嵌套函数: 在函数内部定义的函数! 一般在什么情况下使用嵌套函数? 1. 封装 - 数据隐藏:外部无法访问“嵌套函数”。 2. 贯彻 DRY(Don’t Repeat Yourself) 原则: 嵌套函数,可以让我们在函数内部避免重复代码。 3. 闭包: 后面会详细讲解。 运行结果: t
阅读全文
摘要:一:for循环和可迭代对象遍历 for 循环通常用于可迭代对象的遍历。for 循环的语法格式如下: for 变量 in 可迭代对象: 循环体语句 可迭代对象: Python包含以下几种可迭代对象: 1. 序列。包含:字符串、列表、元组 2. 字典 3. 迭代器对象(iterator) 4. 生成器函
阅读全文
摘要:嵌套循环及练习: 一个循环体内可以嵌入另一个循环,一般称为“嵌套循环”,或者“多重循环”。 【练习】
阅读全文
摘要:一:break语句 break语句可用于 while 和for 循环,用来结束整个循环。当有嵌套循环时,break 语句只 能跳出最近一层的循环。 【操作】使用 break 语句结束循环 二:continue语句 continue 语句用于结束本次循环,继续下一次。多个循环嵌套时,continue
阅读全文
摘要:一:循环代码优化 虽然计算机越来越快,空间也越来越大,我们仍然要在性能问题上“斤斤计较”。编写循环时,遵守下面三个原则可以大大提高运行效率,避免不必要的低效计算: 1. 尽量减少循环内部不必要的计算 2. 嵌套循环中,尽量减少内层循环的计算,尽可能向外提。 3. 局部变量查询较快,尽量使用局部变量
阅读全文
摘要:推导式创建序列: 推导式是从一个或者多个迭代器快速创建序列的一种方法。它可以将循环和条件判断结合, 从而避免冗长的代码。推导式是典型的Python 风格,会使用它代表你已经超过Python初 学者的水平。 一:列表推导式 列表推导式生成列表对象,语法如下: [表达式 for item in 可迭代对
阅读全文
摘要:一:函数介绍 函数是可重用的程序代码块。函数的作用,不仅可以实现代码的复用,更能实现代码的 一致性。一致性指的是,只要修改函数的代码,则所有调用该函数的地方都能得到体现。 在编写函数时,函数体中的代码写法和我们前面讲述的基本一致,只是对代码实现了封 装,并增加了函数调用、传递参数、返回计算结果等内容
阅读全文
摘要:一:形参和实参 【操作】定义一个函数,实现两个数的比较,并返回较大的值。 上面的 printMax 函数中,在定义时写的printMax(a,b)。a 和 b称为“形式参数”, 简称“形参”。也就是说,形式参数是在定义函数时使用的。 形式参数的命名只要符合“标 识符”命名规则即可。 在调用函数时,传
阅读全文
摘要:一:多分支选择结构 多分支选择结构的语法格式如下: if 条件表达式 1 : 语句 1/语句块 1 elif 条件表达式 2: 语句 2/语句块 2 . . elif 条件表达式 n : 语句 n/语句块n [else: 语句 n+1/语句块 n+1 ] 注:多分支结构,几个分支之间是有逻辑关系的,
阅读全文
摘要:一:循环结构介绍 循环结构用来重复执行一条或多条语句。表达这样的逻辑:如果符合条件,则反 复执行循环体里的语句。在每次执行完后都会判断一次条件是否为 True,如果 为True则重复执行循环体里的语句。图示如下: 循环体里面的语句至少应该包含改变条件表达式的语句,以使循环趋于结束;否 则,就会变成一
阅读全文
摘要:字典核心底层原理(重要) 字典对象的核心是散列表。散列表是一个稀疏数组(总是有空白元素的数组),数组的 每个单元叫做 bucket。每个 bucket 有两部分:一个是键对象的引用,一个是值对象的引 用。 由于,所有bucket 结构和大小一致,我们可以通过偏移量来读取指定 bucket。 一:将一
阅读全文
摘要:一:根据键查找“键值对”的底层过程 明白一个键值对是如何存储到数组中的,根据键对象取到值对象,理解起来就 简单了。 >>> a.get("name") 'jack' 当我们调用a.get(“name”),就是根据键“name”查找到“键值对”,从而找到值对象“jack”。 第一步,我们仍然要计算“n
阅读全文
摘要:集合: 集合是无序可变,元素不能重复。实际上,集合底层是字典实现,集合的所有元素都是字典 中的“键对象”,因此是不能重复的且唯一的。 一:集合的创建和删除 1. 使用{}创建集合对象,并使用 add()方法添加元素 2. 使用set(),将列表、元组等可迭代对象转成集合。如果原来数据存在重复数据,则
阅读全文
摘要:控制语句介绍: 前面学习的变量、数据类型(整数、浮点数、布尔)、序列(字符串、列表、元组、字 典、集合),可以看做是数据的组织方式。数据可以看做是“砖块”! 流程控制语句是代码的组织方式,可以看做是“混凝土”。 一个完整的程序,离不开“砖块”,也离不开“混凝土”。他们的组合,才能让我们建 立从小到“
阅读全文
摘要:一:选择结构介绍 选择结构通过判断条件是否成立,来决定执行哪个分支。选择结构有多种形式,分为:单分 支、双分支、多分支。流程图如下: 二:单分支选择结构 if语句单分支结构的语法形式如下: if 条件表达式: 语句/语句块 其中:1条件表达式:可以是逻辑表达式、关系表达式、算术表达式等。 2语句/语
阅读全文
摘要:一:双分支选择结构 双分支结构的语法格式如下: if 条件表达式 : 语句 1/语句块 1 else: 语句 2/语句块 2 二:三元条件运算符 Python提供了三元运算符,用来在某些简单双分支赋值情况。三元条件运算符语法格式如 下: 条件为真时的值 if (条件表达式) else 条件为假时的值
阅读全文
摘要:一:字典介绍 字典是“键值对”的无序可变序列,字典中的每个元素都是一个“键值对”,包含:“键 对象”和“值对象”。可以通过“键对象”实现快速获取、删除、更新对应的“值对象”。 列表中我们通过“下标数字”找到对应的对象。字典中通过“键对象”找到对应的“值 对象”。“键”是任意的不可变数据,比如:整数、
阅读全文
摘要:字典元素的访问: 1. 通过 [键] 获得“值”。若键不存在,则抛出异常。 2. 通过get()方法获得“值”。推荐使用。优点是:指定键不存在,返回None;也可以设 定指定键不存在时默认返回的对象。推荐使用 get()获取“值对象”。 3. 列出所有的键值对 4. 列出所有的键,列出所有的值 5.
阅读全文
摘要:字典元素添加、修改、删除 1. 给字典新增“键值对”。如果“键”已经存在,则覆盖旧的键值对;如果“键”不存在, 则新增“键值对”。 2. 使用update()将新字典中所有键值对全部添加到旧字典对象上。如果key有重复,则直 接覆盖。 3. 字典中元素的删除,可以使用del()方法;或者 clear
阅读全文
摘要:序列解包 序列解包可以用于元组、列表、字典。序列解包可以让我们方便的对多个变量赋值。 序列解包用于字典时,默认是对“键”进行操作; 如果需要对键值对操作,则需要使用 items();如果需要对“值”进行操作,则需要使用 values();
阅读全文