摘要:
使用 Python 统计中文字符的数量 方法一,排除法 假设只有中英文字符: 方法二,范围判断 Unicode 中,基本中文字符处在一个范围区间,可以参考 "汉字 Unicode 编码范围" 。写成代码就是: 参考资料: 1. "python统计中文字符数量" 2. "汉字 Unicode 编码范围 阅读全文
摘要:
RPC 的原理和简单使用 RPC 的概念 RPC,Remote Procedure Call ,翻译成中文就是远程过程调用,是一种进程间通信方式。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数。在调用的过程中,不用程序员显式编码这个远程调用的细节。即无论是调用本地的接口/服 阅读全文
摘要:
消息队列和 RabbitMQ 消息队列 来看这样一个例子。相信大家都用外卖软件点过外卖。当我们在手机上下单之后,都发生了什么呢? 首先,客户用手机下单,将请求发送给服务端。服务端当然要先安排订单系统确认我们的订单信息,只有当我们付款成功后,订单才会生成。订单生成后,需要做三件事(真实的系统要做的事情 阅读全文
摘要:
常见设计模式 [TOC] 先想象一下这样一个场景:去麦当劳点餐,我们想吃麦辣鸡腿堡、薯条和可乐。我们当然可以单点,但是如果我们对收银小姐姐说,请给我一份麦辣鸡腿堡套餐,就会方便很多。套餐是餐厅和我们约定好了的一个规范,如果大家都按照这个规范来点餐,就能够提高点餐效率。 创建套餐是提高点餐效率的可重复 阅读全文
摘要:
多态 [TOC] 多态体现一,变量可以指向任意数据类型 多态的第一种体现是,不关注对象的数据类型,同一个变量完全可以在不同的时间引用不同的对象 Python 本身就是一种多态语言,不关心对象的类型 对于弱类型的语言来说,变量并没有声明类型,因此同一个变量完全可以在不同的时间引用不同的对象 毫无疑问, 阅读全文
摘要:
封装 “封装”就是将抽象得到的数据和行为相结合,形成一个有机整体 元组,列表,字典等等:数据的封装,通过引用去使用数据 函数:算法的封装 如果没有函数,功能要靠每一行代码去直接执行 没有函数的话,耦合度会很高,复用性很差,开发效率也非常低 封装的目的是简化编程和增加安全性 使用者不必关系具体的实现细 阅读全文
摘要:
继承(实现)关系 [TOC] 面向对象与继承 面向对象思想有三大要素: 1. 继承 2. 封装 3. 多态 面向对象编程(OOP)语言的一个重要功能就是“继承”: 它可以使用现有类的所有功能,并在无需重新编写原来类的情况下,对这些功能进行扩展 通过继承创建的新类被称为“子类”或“派生类”,被继承的类 阅读全文
摘要:
类之间的依赖关系和组合关系 [TOC] 依赖(关联)关系 类之间可以有三种关系: 1. 依赖(关联)关系 2. 组合(聚合)关系 3. 继承(实现)关系 依赖(关联)关系指的是类对象执行某个动作的时候,需要其他类的对象来帮助完成这个操作的情况,其特点为: 将一个类的对象或者类名传到另一个类的方法中使 阅读全文
摘要:
OOA、OOD 和 OOP ,Object Oriented Analysis,面向对象分析法 指的是在一个系统的开发过程中,进行了系统业务调查以后,按照面向对象的思想来分析问题 OOA的主要原则: 1. 抽象:从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质的特征,就叫抽象 2. 封装:把对 阅读全文
摘要:
面向对象初识 [TOC] 面向过程与面向对象 编程语言发展历程: 机器语言 汇编语言 高级语言 数学向左,上帝向右。数学家的思维总是倾向于将事物抽象化,寻求程序运行效率的最大化。但是正常人的思维赶不上数学家的思维。而且在硬件运行速度足够快,内存空间足够大的今天,已经不特别在意程序的运行速度。人们更在 阅读全文
摘要:
Python 2 和 Python 3 的区别 | Python 2 | Python 3 | | | | | 源码不统一 | 源码统一 | | 有重复代码 | 没有重复代码 | | 整型的除法:整型 | 整型的除法:浮点型 | | print不加括号也可以 | print() | | input( 阅读全文
摘要:
软件开发规范 软件开发规范主要采取的是分文件管理的办法,主要把 Python 项目分为多个文件,放在指定文件夹中,分类管理。主要的目录结构为: 每个文件夹的功能为: bin 用于存放启动文件 lib 用于存放公共组件 core 用于存放主逻辑程序,也就是核心代码 db 用于存放相关数据 log 用于 阅读全文
摘要:
语法分析和词法分析 补充一点知识,下面这段代码: 运行过后程序并没有报错,虽然并没有变量或者函数命名为 foo。这是因为程序运行过程中,会有两个分析过程:语法分析和词法分析。 词法分析就是分析代码中是否所有的词语都符合规范,如果不规范,则会报错。 语法分析则是判断每个语句是否合乎语法规范。 上面的两 阅读全文
摘要:
循环删除的坑 有这样一个列表: ,现在我们想要把列表中的每个元素都删除掉,但是不能用 方法。我们很理所当然地会想到使用 for 循环逐个删除: 居然没有删除干净。 这是 python 中循环的自主计数和列表的自动补位共同影响下的结果。在循环第一圈时,循环操作从索引值为 0 的位置找元素,返回了 11 阅读全文
摘要:
深浅拷贝 [TOC] 同驻留机制一样,深浅拷贝在编程中的应用其实也不是很多。但是我们依然需要了解。一方面是为了避免后期开发代码时出现问题却不知道原因,另一方面也是因为面试时几乎都会问到有关深浅拷贝的问题。 深浅拷贝主要分为三个方面: 1. 什么是赋值 2. 什么是浅拷贝 3. 什么是深拷贝 赋值 变 阅读全文
摘要:
Python 中的驻留机制:小数据池和代码块 Python 中的驻留机制主要有两个:小数据池和代码块。驻留机制并不是学习 Python 过程中特别重要的概念,我们学习小数据池的目的主要有两个方面: 1. 解决日后写代码过程中可能出现的疑惑。在后期开发中,能 知道有些代码为什么不能正常使用 2. 找工 阅读全文
摘要:
二次编码 编码回顾 二次编码 在 python 3 的内存中使用的是 Unicode 编码,而硬盘中存储时使用的是用户选择的编码方式[^1]。这样一来,就需要进行 Unicode 和其他编码方式的转变,也就涉及到 编码 和 解码 的问题。 编码是将字符转化为二进制的形式,使用的是 方法: 解码是将二 阅读全文
摘要:
编码初识 常见编码集: 1. ascii: 不支持中文 一个字符占用 8 位 2. gbk(包含 ascii)国标码: 一个英文字符占用 8 位(1 字节) 一个中文字符占用 16 位(2 字节) 3. Unicode: 英文:4 个字节,32 位 中文:4 个字节,32 位 4. utf 8(最流 阅读全文
摘要:
高阶内置函数 [TOC] 这一部分主要是一些 Python 中内置的高阶函数。所谓的高阶函数,就是以函数为参数的函数。 filter 函数 filter 函数用来过滤掉不符合条件的元素。filter 函数有两个参数,第一个参数为规则函数,第二个参数为可迭代对象: 输出的结果为: filter 的返回 阅读全文
摘要:
基础内置函数 [TOC] 函数 all 函数用来判断可迭代对象中是否所有的元素 都 为 True: 函数 any 函数与用来判断可迭代对象中的元素是否 有一个 为 True: 函数 callable 函数用来判断变量是否可以被调用: 函数 bytes 函数可以将字符串编码为二进制形式,它的功能和字符 阅读全文