9 lalor

尚未进行身份认证

Nothing is impossible!

等级
TA的排名 1w+

终结篇:Python进阶之路 #P013#

到这里,我们的课程就要结束了。如果读者能够读到这里,那一定是真爱。作为我们整个课程的压轴文章,笔者将为各位读者推荐最有价值的学习资料。大部分学习资料都与Python相关,除此之外,还有两本特别好的书要推荐给大家。1 Python语言自身相关的书籍Python是一门编程语言,使用范围非常广泛,因此,大家不要去追求精通Python程序语言自身,而应该将精力放在自己需要解决的实际问题上。其次,绝大多...

2019-12-24 20:39:19

站在巨人肩上看世界:通过开源项目学Python #P012#

在这篇文章中,将会讨论著名开源项目对Python内置dict的几种扩展。这些扩展本身是出于特定目的而开发,应用范围不如Python内置的dict广泛。但是,由于这些扩展本身很“小”,所以它的应用范围也不仅限于特定的开源项目,我们完全可以将这些扩展拿过来应用到自己的项目之中。通过学习这些优秀开源项目的源码,不但可以开阔自己视野,还能达到提高Python编码水平的目的。本文将依次介绍以下几个对Py...

2019-12-24 20:30:34

编程中易犯错误汇总:一个综合案例 #P011#

在上一篇文章中,我们学习了如何区分好的代码与坏的代码,如何写好代码。所谓光说不练假把式,在这篇文章中,我们就做一件事——一起来写代码。首先,我会先列出问题,然后要求读者自己写一份答案;然后,我会给出我写的代码;最后,我们还会以这个问题为例,讨论编程中常见的错误。1 问题描述在这个页面中,有一道Python相关的练习题,可以作为Python相关的进阶题目。题目的描述如下:Write a Py...

2019-12-24 20:29:00

可读性与可扩展性:一个完美的函数 #P010#

在这一篇文章中,我们会在os.walk函数的基础上,封装一个查找文件的函数。如果读者是一位编程经验还不太丰富的工程师,相信可以从这篇文章中受到一些启发,并在以后的工作中,更加能够编写出扩展性强、可读性强、好维护的代码。1 使用os.walk遍历目录树为了避免读者不了解os.walk函数,从而无法理解这篇文章在就讲什么。因此,在正式介绍今天的主题之前,我们先来看一下os.walk函数的使用。o...

2019-12-24 20:27:35

好代码与坏代码:代码整洁之道 #P009#

在这一篇文章中,我们来讨论一些更加形而上的知识,即什么是好代码、什么是坏代码,如何写出好代码。在本系列文章的第一篇中,笔者解释了什么是Pythonic,并且认为Pythonic是一些正确的废话,然后给读者推荐了《重构》和《代码整洁之道》。《重构》和《代码整洁之道》都是使用Java语言作为思想的载体,为了节省读者的时间,并且强调一些Python语言的特性,所以有了读者现在正在看的这篇文章。在这篇文...

2019-12-24 20:26:51

Python语言高级特性:创建Python对象的方法 #P008#

在这篇文章中,将大开脑洞,讨论不同的Python对象“创建”的方法。通过比较不同的实现方法,将会揭露很多被大家忽略的Python语言高级知识。准确来说,本篇文章创建对象的方法并不是真正的“创建”,而是通过不同的方式获取到类对象,然后进行调用创建对象。但是,本篇文章的讨论对于绝大多数读者来说依然非常有意义,可以接触到很多比较隐蔽的Python知识。1 问题在这篇文章中,我们会用到下面这个名为Po...

2019-12-24 20:26:06

Python语言高级特性:生成器 #P007#

在Python这门语言中,生成器毫无疑问是最有用的特性之一,与此同时,也是使用的最不广泛的Python特性之一。究其原因,主要是因为,在其他主流语言里面没有生成器的概念。正是由于生成器是一个“新”的东西,所以,它一方面没有引起广大工程师的重视,另一方面,也增加了工程师的学习成本,最终导致大家错过了Python中如此有用的一个特性。在这一节中,我们将深入浅出地介绍Python的生成器,以改变“如此有...

2019-12-24 20:25:21

Python语言高级特性:装饰器 #P006#

在这一篇文章中,我们将会介绍Python语言中的装饰器。装饰器或许是Python中最复杂的知识点,也是很多人学习时遇到的难点。希望在这篇文章中,我能够以由浅入深的方式,带领大家彻底搞清楚装饰器,领悟装饰器的好处。1 准备知识Python 2.4 开始提供了装饰器(decorator),装饰器作为修改函数的一种便捷方式,为工程师编写程序提供了便利性和灵活性。适当使用装饰器,能够有效的提高代码的可...

2019-12-24 20:24:33

Python语言高级特性:上下文管理器 #P005#

相信大家在编程的时候,经常会遇到这样的场景:先执行一些准备操作,然后执行自己的业务逻辑,等业务逻辑完成以后,再执行一些清理操作。例如,对文件操作,我们需要首先打开文件,然后处理文件内容,最后关闭文件。又如,当多线程程序需要访问临界资源的时候,线程首先需要获取互斥锁,当执行完成并准备退出临界区的时候,需要释放互斥锁。对于这些场景,Python中提供了上下文管理器(Context Manager),可...

2019-12-24 20:23:42

牢记数据结构的时间复杂度 #P004#

虽然大多数情况下,Python程序都不会应用在计算密集型的场景。但是,作为一个合格的工程师,依然应该对Python内置数据类型的时间复杂度有一个基本的了解,才能够避免写出一些明显低效的代码。打个比方,我们都知道,在Python里面list是异构元素的集合,并且能够动态增长或收缩,可以通过索引和切片访问。那么,又有多少人知道,list是一个数组而不是一个链表呢。1 时间复杂度的重要性算法的时间复...

2019-12-24 20:22:25

善于使用列表推导、集合推导与字典推导 #P003#

推导式是一个可以从现有数据序列构建另一个新的数据序列的结构体。Python共提供了三种推导式,在Python 2和 Python 3中都支持:列表(list)推导式字典(dict)推导式集合(set)推导式其中,最常用的是列表推导(list comprehension,又称列表解析式)。在这篇文章中,将用列表推导作为例子对Python的推导式进行系统性的介绍,然后再简单介绍字典推导与集...

2019-12-24 20:20:53

合理使用数据结构 #P002#

有一位计算机科学家说过,程序等于算法加数据结构,笔者也深以为然。在这篇文章中,笔者将通过一个完整的例子,一步一步来演示如何使用正确的数据结构。并在文章最后,推荐读者了解和学习一些常见的数据结构,以便在工作中恰到好处的使用,减少重复的工作,提升代码质量和工作效率。1 合理使用数据结构在正式介绍今天的例子之前,我们来热个身,看两个小问题。读者可以通过这两个小问题,看看自己对常用的数据结构,是否了解...

2019-12-24 20:19:07

怎样才能写出Pythonic的代码 #P001#

1 什么是Pythonic在Python语言里面,有一个专门的词用来形容代码写的好,那就是“Pythonic”。那么,何为Pythonic呢?相信不少Python工程师都知道,Python中有一个彩蛋,回答了什么是Pythonic。这个彩蛋,也就是所谓的Python之禅(The Zen of Python)。只需要在Python的交互模式下,导入this库,就可以看到Python之禅的详细内容...

2019-12-24 20:10:02

为什么要学习Python高质量编程 #P000#

大家好,我是赖明星。现就职于腾讯,曾任网易资深工程师。有着多年的Python开发经验和一线互联网实战经验,擅长C、Python、Java、MySQL、Linux 等主流技术。国内知名的Python技术专家和Python技术的积极推广者,已出版图书《Python Linux 系统管理与自动化运维》。课程背景我是2009年开始接触Python语言的,见证了Python技术在国内从无人问津到火遍...

2019-03-20 19:47:23
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。