如果只能推荐3本Python书的话,我推荐这3本。
第一本:Python编程快速上手 让繁琐工作自动化 第2版 豆瓣评分8.9
本书是一本面向初学者的Python编程实用指南。本书不仅介绍了Python语言的基础知识,而且通过案例实践教读者如何使用这些知识和技能。本书的第一部分介绍了基本的Python编程概念;第二部分介绍了一些不同的任务,通过编写Python程序,可以让计算机自动完成它们。第二部分的每一章都有一些项目程序供读者学习。本书每章的末尾提供了一些习题,除第1、2章外,每章末尾还提供了深入的实践项目,帮助读者巩固所学的知识。
本书适合任何想要通过Python学习编程的读者,尤其适合缺乏编程基础的初学者。通过阅读本书,读者将能利用非常强大的编程语言和工具,并且体会到用Python编程的快乐。
书有有提到:聪明地提出编程问题
如果不能在线查找到答案,请尝试在Stack Overflow或Reddit子板块“learn programming”这样的论坛上提问。但要记住用聪明的方式提出编程问题,这有助于别人来帮助你。确保阅读这些网站的常见问题(Frequently Asked Question,FAQ),了解正确的提问方式。
在提出编程问题时,要记住以下几点。
- 说明你打算做什么,而不只是你做了什么。这会让帮助你的人知道你是否走错了路。
- 明确指出发生错误的地方。指出它是在程序每次启动时发生,还是在你做了某些动作之后发生。
- 将完整的错误信息和你的代码复制粘贴到Pastebin或GitHub Gist上。这些网站让你很容易地在网上与他人共享大量的代码,而不会丢失任何文本格式。然后你可以将贴出的代码的URL放在电子邮件或论坛帖子中。
- 解释你为了解决这个问题已经尝试了哪些方法。这告诉别人你已经做了一些工作来弄清楚状况。
- 列出你使用的Python版本(Python 2解释器和Python 3解释器之间有一些重要的区别)。而且,要说明你使用的操作系统和版本。
- 如果错误在你更改了代码之后出现,准确说明你改了什么。
- 说明是否在每次运行该程序时都会重现该错误;或者它只是在特定的操作执行之后才出现,如果是这样,解释是哪些操作。
- 遵守良好的在线文明行为。例如,不要全用大写提问,或者对试图帮助你的人提出无理的要求。
第二本:笨办法学Python 3 豆瓣评分8.1
这本书的目的是让你起步编程。虽然书名说是用“Hard Way”(笨办法)学习写程序,但其实并非如此。所谓的“笨办法”指的是本书的教学方式,也就是所谓的“指令式”教学。在这个过程中,我会让你完成一系列习题,而你则通过反复练习来学到技能,这些习题也是专为反复练习而设计的。对于一无所知的初学者来说,在能理解更复杂的话题之前,这种教授方式效果是很好的。你可以在各种场合看到这种教授方式,从武术到音乐不一而足,甚至在学习基本的算术和阅读技能时也会看到这种教学方式。
本书通过练习和记忆的方式,指导你逐渐掌握使用Python编程的技能,然后由浅入深,让你将这些技能应用到各种问题上。读完本书之后,你将有能力接触学习复杂的编程主题所需的工具。我喜欢告诉别人:我的这本书能给你一个“编程黑带”。意思就是说,你已经打好了基础,可以真正开始学习编程了。
如果你肯努力,并投入一些时间,掌握了这些技能,你将学会如何编写代码。
本书是一本Python入门书,适合对计算机了解不多,没有学过编程,但对编程感兴趣的读者学习使用。这本书以习题的方式引导读者一步一步学习编程,从简单的打印一直讲到完整项目的实现,让初学者从基础的编程技术入手,最终体验到软件开发的基本过程。本书是基于Python 3.6版本编写的。
本书结构非常简单,除“准备工作”之外,还包括52个习题,其中26个覆盖了输入/输出、变量和函数3个主题,另外26个覆盖了一些比较高级的话题,如条件判断、循环、类和对象、代码测试及项目的实现等。每一章的格式基本相同,以代码习题开始,按照说明编写代码,运行并检查结果,然后再做附加练习。
第三本:进阶书 Python核心编程(第3版) 豆瓣评分9.2
本书的目标读者是希望加深对Python语言的理解以及学习现代化编程惯用法的有经验的程序员。本书许多内容把重点放在库、框架和应用中使用的高级技术上。本书假设读者已经有了理解本书主题的必要背景知识(例如对计算机科学的一般性知识、数据结构、复杂度计算、系统编程、并发、C语言编程等)。此外,本书中提到的秘籍往往只是一个框架,意在提供必要的信息让读者可以起步,但是需要读者自己做更多的研究来填补其中的细节。因此,我们假设读者知道如何使用搜索引擎以及优秀的Python在线文档。
这不是一本用来给初学者首次学习Python编程而使用的书。事实上,本书已经假设读者通过Python教程或者入门书籍了解了基本知识。本书同样不能用来作为快速参考手册(即,快速查询特定模块中的某个函数)。相反,本书的目标是把重点放在特定的编程主题上,展示可能的解决方案并以此作为跳板引导读者学习更加高级的内容。这些内容你可能会在网上或者参考书中遇到过。
本书介绍了Python应用在各个领域中的一些使用技巧和方法,其主题涵盖了数据结构和算法,字符串和文本,数字、日期和时间,迭代器和生成器,文件和I/O,数据编码与处理,函数,类与对象,元编程,模块和包,网络和Web编程,并发,实用脚本和系统管理,测试、调试以及异常,C语言扩展等。
本书覆盖了Python应用中的很多常见问题,并提出了通用的解决方案。书中包含了大量实用的编程技巧和示例代码,并在Python 3.3环境下进行了测试,可以很方便地应用到实际项目中去。此外,本书还详细讲解了解决方案是如何工作的,以及为什么能够工作。
本书非常适合具有一定编程基础的Python程序员阅读参考。
学习Python在线资源
http://docs.python.org
如果你需要深入了解语言的细节以及探究各个模块,那么不必多说,Python自带的在线文档绝对是极佳的资源。只是在查阅的时候需要确保你看的是Python 3的文档,不是之前的老版本。
http://www.python.org/dev/peps
如果想理解为Python语言添加新特性的动机以及一些微妙的实现细节,那么PEPs(Python Enhancement Proposals)绝对是珍贵的参考资源。尤其是对于一些更加高级的语言特性更是如此。在写作本书时,我们发现PEP往往比官方文档还要有 帮助。
http://pyvideo.org
这里有大量的视频演讲以及教程,素材都是取自最近一次的PyCon大会、用户组会议等。对于学习现代Python开发来说是非常优秀的资源。在许多视频中都会有Python的核心开发者现身说法,讲解将会添加到Python 3中的新特性。
http://code.activestate.com/recipes/langs/python
很长一段时间以来,在ActiveState的Python版块上可找到数以千计的针对特定编程问题的解决方案。在写作本书时,已经包含有大约300条特定于Python 3的秘籍。你会发现其中的许多秘籍要么对本书中已经涵盖的主题进行了扩展,要么缩小范围,专注于更加具体的任务。因此,它是学习Python 3时的好伴侣。
http://stackoverflow.com/questions/tagged/python
Stack Overflow上目前有超过175000个问题被标记为与Python相关(而这其中又有大约5000个问题是特定于Python 3的)。尽管每个问题与回答的质量有所区别,但仍然可以找到许多优秀的素材。