谈谈 Python 中的连接符(+、+=)

假设有下面一段代码: a = [1, 2, 3, 4] b = [5, 6, 7, 8, 9] c = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20] for item in (a, b, c): item += [0] * (10 - len(item)) print a print b print c 这段代码的意思是,有三个列表,需要在长度不为 10 的列表尾部填充 0,让其长度变为10。输出如下: [1, 2, 3, 4, 0, 0, 0, 0, 0, 0] [5, 6, 7, 8, 9, 0, 0, 0, 0, 0] [11, 1...

阅读更多

Python 模块的一些知识点总结

模块支持从逻辑上组织 Python 代码。 当代码量变得相当大的时候, 我们最好把代码分成一些有组织的代码段,前提是保证它们的彼此交互。 这些代码片段相互间有一定的联系, 可能是一个包含数据成员和方法的类, 也可能是一组相关但彼此独立的操作函数。 这些代码段是共享的,所以Python 允许 "调入" 一个模块, 允许使用其他模块的属性来利用之前的工作成果, 实现代码重用。这个把其他模块中属性附加到你的模块中的操作叫做导入(import) 。那些自我包含并且有组织的代码片断就是模块( module )。 模块导入 推荐所有的模块在 Python 模块的开头部分导入。...

阅读更多

对 Python 迭代的深入研究

在程序设计中,通常会有 loop、iterate、traversal 和 recursion 等概念,他们各自的含义如下: 循环(loop),指的是在满足条件的情况下,重复执行同一段代码。比如 Python 中的 while 语句。 迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项。比如 Python 中的 for 语句。 递归(recursion),指的是一个函数不断调用自身的行为。比如,以编程方式输出著名的斐波纳契数列。 遍历(traversal),指的是按照一定的规则访问树形结构中的每个节点,而且每个节点都只访问一次。 在其他语言中,for 与 while ...

阅读更多

非关系性数据库 MongoDB 简介

MongoDB 是一个基于分布式文档存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 非关系性数据库(NoSQL) 非关系性数据库,NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就...

阅读更多

Python 面向对象编程概要

面向对象三大特性 面向对象的三大特性是指:封装、继承和多态。 封装 封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。所以,在使用面向对象的封装特性时,需要: 将内容封装到某处 从某处调用被封装的内容 继承 继承,面向对象中的继承和现实生活中的继承相同,即:子可以继承父的内容。对于面向对象的继承来说,其实就是将多个类共有的方法提取到父类中,子类仅需继承父类而不必一一实现每个方法。 Python 的类如果继承了多个类,那么其寻找方法的方式有两种,分别是:深度优先和广度优先,这分别体现在旧式类和新式类中: 当类是经典类时,多继承情况下,会按照深度优...

阅读更多

Gitignore 配置语法

Git 的 .gitignore 配置文件用于配置不需要加入到版本管理中的文件,配置好该文件能够为项目的管理带来很大的便利。它的配置与 .gitconfig 一样可以分为全局和局部两种。通过修改全局配置 git config 中的 excludesfile 配置向可以指定全局忽略文件。设置方法为: $git config --global core.excludesfile ~/.gitignore 这样,修改 ~/.gitignore 这个文件将作用于所有 git 项目,并且作用于项目实例中的所有被跟踪的目录。比如说我们可以在该文件中添加 *.o 来忽略所有 .o 文件。 局...

阅读更多

Python datetime模块参考手册

Python提供了多个内置模块用于操作日期时间,像 calendar,time,datetime。time模块提供的接口与C标准库 time.h 基本一致。相比于 time 模块,datetime模块的接口则更直观、更容易调用。 模块定义了两个常量: datetime.MINYEAR datetime.MAXYEAR 这两个常量分别表示 datetime 所能表示的最小、最大年份。其中,MINYEAR = 1,MAXYEAR = 9999。 datetime 模块定义了下面这几个类: datetime.date:表示日期的类。常用的属性有year, month, day;...

阅读更多

Python 实现斐波那契数列

斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下递归的方法定义: F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)。 1. 元组实现 fibs = [0, 1] for i in range(8): fibs.append(fibs[-2] + fibs[-1]) 这能得到一个在指定范围内的斐波那契数列的列表。 2. 迭代器实现 class Fibs: def __init__(self): self.a = 0 ...

阅读更多