关于 Python 的经典入门书籍有哪些?
Posted 人邮异步社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 Python 的经典入门书籍有哪些?相关的知识,希望对你有一定的参考价值。
怎样学习任何一种编程语言
1.找到关于这种编程语言的书或介绍性读物。
2.通读这本书,把里边的代码都录入一遍并使其运行起来。
3.一边读书一边写代码,同时做好笔记。
4.使用这种编程语言实现一些你用另一种熟悉的编程语言做过的程序组件。
5.阅读别人用这种编程语言编写的代码,试着仿照他们的方式编写代码。
每学一种新的编程语言,你就会成长为一个更好的程序员。你学的编程语言越多,它们就会变得越容易学习。当你学到第三种或者第四种编程语言的时候,你就应该能够在一周内学会一门类似的编程语言了,不过对于一些特别的编程语言来说你可能还是要花较长的时间。你现在学了Python,接下来学习Ruby和javascript就应该比较快了。这是因为很多编程语言有着共同的理念,你只要学了其中一种,就能用在别的编程语言上。
关于学习新编程语言的最后一件要记住的事情就是:别当一个“蠢游客”。“蠢游客”就是那种去了一个国家旅游,然后回来抱怨那儿的饭不好吃的人。“为什么这个白痴国家连汉堡都买不到?”当你学习一种新编程语言时,不要假设它的工作方式太蠢,它只是不同而已,只有接受它你才能学会它。
不过,在学完一种编程语言后,不要成为这种编程语言工作方式的奴隶。有时你能看到有人使用一种编程语言做一些很白痴的事情,没有别的理由,只不过是“我以前一直就是这样做的”。如果你喜欢一种风格,而你又知道大家的做法和你不同,如果你看到后者能带来好处,那就毫不犹豫地打破自己的习惯吧。
Python的长处
Python指的是Python编程语言(包括语法规则,用于编写被认为是有效的Python代码);也指Python解释器软件,它读取源代码(用Python语言编写),并执行其中的指令。Python解释器可以从Python的官方网站免费下载,有针对Linux操作系统、macOS和Windows操作系统的版本。
Python的名字来自超现实主义的英国喜剧团体,而不是来自蛇。Python程序员被亲切地称为Pythonistas。Monty Python和与蛇相关的引用常常出现在Python的指南和文档中。
Python能够持续吸引新用户,是有很多理由的。Python是一款真正的跨平台编程语言,从Windows、Linux/UNIX到Macintosh平台,从超级计算机到手机,它都能很好地运行。Python可以用于开发小型应用程序和快速原型系统,但也能扩展到足以开发大型程序。Python自带了功能强大且易于使用的图形用户界面(GUI)工具包、Web编程库等。而且更重要的是,Python完全免费。
Python是Guido van Rossum在20世纪90年代研发的一种现代编程语言(以一个著名的喜剧团体命名)。尽管Python并不能完美地适用于所有应用程序的开发,但它的优势使其成为许多情况下的理想选择。
1 Python易于使用
熟悉传统语言的程序员会发现,Python很容易学习。包含了所有熟悉的结构,如循环、条件语句、数组等,但在Python中很多都更易于使用。原因有以下几点。
- 类型与对象关联,而不是变量。变量可以被赋予任何类型的值,列表也可以包含许多类型的对象。这也意味着通常不需要进行强制类型转换(type casting),代码再也不用受制于预先声明的类型了。
- Python通常可以执行更高级别的抽象操作。有一部分原因是源于Python语言的构建方式,另一部分原因是Python的发行版附带了内容丰富的标准代码库。一个下载网页的程序用两三行代码就可以写完了!
- 语法规则非常简单。虽然成为一名专业的Python高手需要耗费很多时间和精力,但即便是初学者也能快速获取到足够的Python语法并编写出实用的代码。
Python非常适合应用程序的快速开发。用Python编写应用程序的时间可能只有用C或Java的五分之一,并且代码行数只有等效C程序的五分之一,这种情况并不少见。当然,这要视具体的应用场景而定。对于那种大部分是在for
循环中执行整数运算的数值算法,Python提升的生产力会少得多。对于普通的应用来说,生产力收益可能会比较可观。
2 Python富有表现力
Python是一种极具表现力的编程语言。这里的“表现力”是指:同样是一行代码,Python可以完成的操作比其他大多数语言都要多。表现力较强的语言,优势十分明显,需要编写的代码越少,项目完成的速度就越快。代码越少,程序就越容易维护和调试。
为了体会一下Python的表现力是如何简化代码的,请考虑交换两个变量var1
和var2
的值。在类似Java的语言中,这需要3行代码和1个额外的变量:
int temp = var1;
var1 = var2;
var2 = temp;
在将var2
的值赋给var1
时,需要先用变量temp
暂存var1
的值,然后再把该暂存值赋给var2
。这个过程并不是很复杂,但是阅读这3行代码并理解这是为了完成数值交换,是要花些工夫的,即便是有经验的程序员也一样。
相比之下,Python允许在一行代码中完成相同的交换操作,并且从交换方式就能明显看出交换确实发生了:
var2, var1 = var1, var2
当然这只是一个很简单的例子,但类似的优点在Python中俯仰皆是。
3 Python可读性好
Python的另一个优点是可读性好。也许读者会认为,编程语言只要能被计算机读懂就可以了,但其实人类同样得能读懂。要阅读代码的人,可能是调试人员(很可能就是写程序的人),可能是维护人员(仍然可能是写程序的人),也可能是任何将来修改代码的人。凡此种种,总之代码越容易阅读和理解越好。
代码越容易理解,就越易于调试、维护和修改。Python在这方面的主要优势就是利用缩进。与大多数语言不同,Python坚持要求代码块必须整体缩进。尽管这会让有些人感到奇怪,但好处就是代码总是能以一种非常易懂的风格进行格式化。
以下是两小段程序,一个用Perl编写,另一个用Python编写。两者的操作相同,参数都是两个相同大小的数值列表,返回对其两两求和后的列表。我认为Python代码的可读性比Perl代码更好,看起来更干净,难以理解的符号更少:
# Perl版
sub pairwise_sum {
my($arg1, $arg2) = @_;
my @result;
for(0..$#$arg1) {
push(@result, $arg1->[$_] + $arg2->[$_]);
}
return(\\@result);
}
# Python版
def pairwise_sum(list1, list2):
result = []
for i in range(len(list1)):
result.append(list1[i] + list2[i])
return result
上面两段代码完成的工作相同,但Python代码胜在了可读性上。当然,Perl还能有其他的实现方式,其中有一些确实会比以上代码简洁得多,但我认为也更加晦涩难懂。
4 Python功能齐备
Python的另一个优势是“功能齐备”(batteries included)理念,因其自带了很多函数库。基本思路就是,安装Python后就应该万事俱备,不需要再安装其他库就能真正开始工作了。这就是为什么Python的标准库自带了电子邮件、网页、数据库、操作系统调用、GUI开发等处理模块。
例如,只需要写两行代码,就可以用Python编写一个Web服务器,用于共享某个目录中的文件。
import http.server
http.server.test(HandlerClass=http.server.SimpleHTTPRequestHandler)
无须再安装用于网络连接和HTTP的库,Python都已内置好了,开箱即用。
5 Python跨平台
Python还是一种优秀的跨平台语言,可以在很多平台上运行,包括Windows、Mac、Linux、UNIX等。因为它是解释型语言,相同代码可以在任何装有Python解释器的平台上运行,而目前几乎所有平台都具备了Python的解释器。Python甚至还有在Java(Jython)和.NET(IronPython)中运行的版本,为运行Python提供了更多可能的平台。
6 Python免费
Python还是免费的。自始至终,Python就是以开源的方式研发的,并且可以免费获取。任一版本的Python都可自行下载和安装,并可用于开发商业或个人应用,分文不收。
虽然世人的态度在慢慢转变,但由于担心缺乏技术支持,担心缺少付费客户的影响力,有些人仍然对免费软件持怀疑态度。但是Python已经被许多大牌公司用于实现关键业务,谷歌、Rackspace、Industrial Light&Magic和Honeywell只是其中的几个例子。这些公司和许多其他公司都很清楚,Python是一个非常稳定、可靠且支持良好的产品,拥有一个活跃的、博识的用户社区。即便提出高难度的Python问题,也能在Python互联网新闻组中迅速获得答案,速度会比大多数技术支持电话快得多,而且无须付费、保证正确。
Python和开源软件
不仅Python是免费的,它的源代码也可以免费使用,可随意进行修改、完善和扩展。因为源代码是免费提供的,所以可供所有人查看并修改。其他那些带有版权的软件,鲜有能以合理的费用进行这种修改的。
如果是第一次接触开源软件,大家应该要了解,不仅可以自由使用和修改Python,还能够(也鼓励)为其做出贡献并对其进行改进。根据自身的条件、兴趣和技能,可以给出财务上的贡献,例如捐赠给Python软件基金会(Python Software Foundation,PSF)。也可以参加特殊兴趣小组(Special Interest Group,SIG),对Python内核或某个辅助模块的发行版进行测试并给出反馈。还可以向社区贡献一些自己或公司开发的东西。当然贡献的大小完全是自行决定的,但只要有能力就一定要考虑去做点什么。这里正在创造巨大的价值,有机会就来添砖加瓦吧。
Python满足了很多期许,表现力强大、可读性好、内置库丰富、跨平台,而且还是开源的。
最经典的Python入门书:
笨办法学Python 3(Learn Python 3 the Hard Way)
本书是一本Python入门书,适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用。这本书以习题的方式引导读者一步一步学习编程,从简单的打印一直讲到完整项目的实现,让初学者从基础的编程技术入手,最终体验到软件开发的基本过程。本书是基于Python 3.6版本编写的。
本书结构非常简单,除“准备工作”之外,还包括52个习题,其中26个覆盖了输入/输出、变量和函数3个主题,另外26个覆盖了一些比较高级的话题,如条件判断、循环、类和对象、代码测试及项目的实现等。每一章的格式基本相同,以代码习题开始,按照说明编写代码,运行并检查结果,然后再做附加练习。
本书通过练习和记忆的方式,指导你逐渐掌握使用Python编程的技能,然后由浅入深,让你将这些技能应用到各种问题上。读完本书之后,你将有能力接触学习复杂的编程主题所需的工具。我喜欢告诉别人:我的这本书能给你一个“编程黑带”。意思就是说,你已经打好了基础,可以真正开始学习编程了。
如果你肯努力,并投入一些时间,掌握了这些技能,你将学会如何编写代码。
Python编程快速上手 让繁琐工作自动化 第2版
本书是一本面向初学者的Python编程实用指南。本书不仅介绍了Python语言的基础知识,而且通过案例实践教读者如何使用这些知识和技能。本书的第一部分介绍了基本的Python编程概念;第二部分介绍了一些不同的任务,通过编写Python程序,可以让计算机自动完成它们。第二部分的每一章都有一些项目程序供读者学习。本书每章的末尾提供了一些习题,除第1、2章外,每章末尾还提供了深入的实践项目,帮助读者巩固所学的知识。
本书没有设计成参考手册,它是初学者指南。编程风格有时候违反最佳实践(例如有些程序使用全局变量),但这是一种折中方式,可以让代码更简单,以便学习。本书的目的是让人们编写用完即抛弃的代码,所以不用花太多时间来关注风格和优雅。复杂的编程概念(如面向对象编程、列表推导和生成器)在本书中也没有出现,因为它们增加了复杂性。编程老手可能会指出,本书中的代码可以修改得更有效率,但本书主要考虑的是用最少的工作量得到能工作的程序。
对于大多数人,他们的计算机只是设备,而不是工具。但通过学习编程,你就能利用现代社会中强大的工具,并且你会一直感到快乐。编程不是脑外科手术,业余人士是完全可以尝试和犯错的。
本书假定你编程的知识为零,并且会教给你很多知识,但你的问题可能超出本书的范围。记住如何有效地提问,如何寻找答案,这对于你的编程之旅是无价的。
接下来的路
建议你看看下面这些项目,并试着用它们实现一些东西。
- 《“笨办法”学Ruby》:学的编程语言越多,了解的编程知识也就越多,所以试着学习一下Ruby吧。
- The Django Tutorial:试着用Django Web框架创建一个Web应用程序。
- SciPy:如果你对科学、数学和工程学感兴趣可以看看。
- PyGame:看看能不能写出一个带图形界面和声音的游戏出来。
- Pandas:用来做数据操纵和分析。
- Natural Language Tool Kit:用来分析文本,以及实现垃圾邮件过滤和自动聊天机器人这样的软件。
- TensorFlow:用来做机器学习和可视化。
- Requests:学习一下HTTP用户端以及Web知识。
- ScraPy:爬取网站内容。
- Kivy:创建桌面和移动平台的用户界面。
- 《“笨办法”学C语言》:等你熟悉Python后试着用我写的其他书学习C和算法。慢慢来,C是一门不同的语言,很值得学习。
以上是关于关于 Python 的经典入门书籍有哪些?的主要内容,如果未能解决你的问题,请参考以下文章