Python书籍github

awesome-python-books

如果有人让你推荐 Python 技术书,请让他看这个列表

前言

好的技术书籍可以帮助我们快速地成长,大部分人或多或少地受益于经典的技术书籍。在「Python开发者」微信公号后台,我们经常能收到让帮忙推荐书籍的消息。这类的问题在@Python开发者 微博 和 伯乐在线的 Python小组 讨论中也不绝于耳。 7月3日,伯乐在线在「Python开发者」微信公号发起了一个讨论 (注:PC端无法看到大家的评论,需要关注微信公号后,从微信才可以看到),通过这个讨论话题,在评论中分享对自己帮助很大的Python技术书籍。

Python书籍github
(Python开发者)

入门级

《Head First Python》+ 入门级 + 微信49票 + 豆瓣评分 9.5

推荐语:

**66:**浅显易懂,编排的顺序特别,有大量插图、对话,不感觉枯燥

古心:通熟易懂,配有大量の图片,不会觉得枯燥,是一本好的入门书

《集体智慧编程》+ 入门级 + 微信123票 + 豆瓣评分 9.0

推荐语:

**Mèrçurý:**以具体实例的方式来展示Python的编程技巧,受益良多

《Python源码剖析》+ 入门级 + 58票 + 豆瓣评分 8.7

推荐语:

**王小惟:**正在翻阅着,深入浅出了解Python底层,期待出新版本

《A Byte of Python》+ 入门级 + 61票 + 豆瓣评分 8.8

推荐语:

**姜振海:**入门级经典教程,能在一天之内快速的读完,了解这门语言的基本语法

《与孩子一起学编程》+ 入门级 + 29票 + 豆瓣评分 8.5

推荐语:

**小武:**传授编程思想,Python的思维,引起你对Python的兴趣,从C语言等系列语言转行到Python的和零基础的都可以看看。入门级,门槛很低。

《利用 Python 进行数据分析》+ 入门级 + 123票 + 豆瓣评分 8.5

推荐语:

**赵勇:**第一次看的时候还不知道AQR是干啥的,实习时候发现作者竟然是AQR的?!又看了几遍。。

《Python学习手册(第四版)》+ 入门级 + 127票 + 豆瓣评分 8.2

推荐语:

**小武:**绝对是打好Python基本功的一等秘籍。是从入门到进阶的书,已经出版了多版 **大家都说名字太长不太容易被人记住:**从零开始学习Python,超多浅显易懂的例子,如果之前没有接触过Python,非常值得阅读

《Think Python》+ 入门级 + 41票 + 豆瓣评分 8.2

推荐语:

**A XASA:**入适合从零开始的初学者,每章都有练习,理论和实际相结合。建议看英文的!

《Python 基础教程》+ 入门级 + 29票 + 豆瓣评分 8.0

推荐语:

**郭建珠:**比较详细的一本书,对全面简单的了解 Python 很有帮助,书中提供了十个项目,也有一定价值

《笨办法学Python》+ 入门级 + 93票 + 豆瓣评分 8.0

推荐语:

**大魔王:**hard way (笨办法)比较适合起步编程。入门python不错

《Python算法教程》+ 入门级 + 127票 + 豆瓣评分 7.7

推荐语:

**大家都说名字太长不太容易被人记住:**用Python对常用算法进行了实现,如果你看过算法导论,这本书是对简单算法的Python实现,如果你只读过学习手册,这本浅显易懂的书可以作为算法的启蒙书。

《Python核心编程》+ 入门级 + 100票 + 豆瓣评分 7.4

推荐语:

**丹尼斯瞎子:**我是为了为了学习多线程才看得这本书,其他得像python基础教程居然都没讲多线程! **Mr. Heron:**可以一直放在手边,随时翻看!!

Python官方手册 + 入门级 + 66票

推荐语:

**Brant Ruan:**有图书选择恐惧症的同学就看官方手册吧。效果非常棒!

网站 www.python-course.eu + 入门级 + 21票

推荐语:

**na@A:**合懂英语的人入门python,例子深入浅出并且覆盖很多容易出错的细节,而且篇幅较短。

进阶级

《Flask Web开发:基于Python的Web应用开发实战》+ 进阶级 + 29票 + 豆瓣评分 8.6

推荐语:

**王小涌:**python web领域比较经典的一本书了,作者miguel grinberg同时维护着自己的技术博客,里面有很多问题的交流

《Python Cookbook(第三版)》+ 进阶级 +  微信 347 票  + 豆瓣评分 8.4

推荐语:

**yran:**适合有基础的人员阅读,可以作为参考手册查询

**大家都说名字太长不太容易被人记住:**对正则表达式,IO,装饰器,面向对象,常用内置模块都有一个比较全面的解释,如果已经熟练掌握学习手册的内容,这本书可以作为工具书,解决一些常见的实际问题,如果之前熟悉java等更复杂的语言,对数据结构和算法也有了解,但是需要结合Python解决工作中可能遇到的小问题,建议阅读一下

《Python科学计算》+ 进阶级 + 156 票 + 豆瓣评分 8.0

推荐语:

**侯海涛:**学习大数据处理的一本好书,分中英版,值得一看,特别是做数据分析 **大家都说名字太长不太容易被人记住:**用了较小的篇幅全面介绍了常用的numpy,plt,list在科学计算中的应用,其他主要是tkinter,marvi等数据可视化模块,而且网上有电子版,可以当做工具书浅浅的阅读一下,需要可视化的时候,里面的一些教程程序有参考价值

《Python编程实战:运用设计模式、并发和程序库创建高质量程序》+ 进阶级 + 24票 + 豆瓣评分 7.8

推荐语:

**张跃:**读懂设计模式在Python中的应用对入门到进阶的开发者很有帮助

《Python绝技:运用Python成为顶级黑客》+ 进阶级 + 192票

推荐语:

**Eric:**以前用这上面学到的东西,让喜欢打游戏的室友在团战时候只要我按回车,他们就掉线。

《Beginning Python Games Development》+ 进阶级 + 55票

推荐语:

**xinming:**人生苦短,我用python,写写小游戏自娱自乐

《Fluent Python》 + 进阶级 + 12 票

推荐语:

**伊凡:**讲了很多细节,以及语言设计背后的考量,对深入理解以及写出Pythonic的代码很有帮助

你也可以来推荐

以上推荐和点赞是来自微信「开发者」微信公号,你也可以在本文评论中,用以下格式来荐上述列表中没有出现的好书: 《书籍名称》入门级 or 进阶级一句话推荐语  

让更多人知道

后续我们将不断通过微信、微博和网站等来宣传这个经典Python技术书单。推荐人将一直署名在其中。如果这个经典Python技术书籍列表让你受益,请帮忙通过朋友圈、微博、QQ空间等途径扩散给更多人,谢谢!

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

PythonShare

Python初学者(零基础学习Python、Python入门)书籍、视频、资料、社区推荐

本文 主要 针对 零基础 想学习Python者。本文本文由@史江歌( QQ:499065469)根据互联网资料收集整理而成,感谢互联网,感谢各位的分享。鸣谢!本文会不断更新。

一、学会使用搜索引擎,尤其是Google。推荐阅读文章

《如何用好Google搜索引擎?》 知乎问答@崔凯

《十大高明的Google搜索技巧》by-雪影蓝风

《如何用好Google》 by-李笑来

二、学会提问

推荐阅读 《提问的智慧》 by-啄木鸟社区

《提问的智慧》 务必请读完!

三、书籍推荐

零基础

  1. Python官方文档 点击打开链接 英语不好的,暂时就先别看了,以后一定肯定要加强英语学习哦;)。

  2. 推荐《How to think like a computer scientist》,对应中文版本《Python学习笔记--皮大庆》,非常适合零基础入门。

  3. 推荐 [《Python编程实践》] (http://book.douban.com/subject/7059900/)

  4. 推荐 《简明Python教程》

  5. 推荐《笨办法学 Python (Learn Python The Hard Way)》

有其他编程语言基础

  1. 推荐《Python基础教程》

  2. 推荐Python入门教程-By廖雪峰

  3. Tutorial - Learn Python in 10 minutes

进阶

  1. 推荐Requests 源码阅读

  2. 《Python进阶》(Intermediate Python 中文版)

更多书籍推荐

  1. 知乎问答:关于 Python 的经典入门书籍有哪些?

  2. V2EX问答: 文科生想学Python

  3. Python快速教程

四、视频推荐

麻省理工公开课《计算机科学及编程导论》,该课程针对零基础者 网易公开课 。

课程介绍 这门课程适用于那些拥有 很少或没有编程经验 的学生,它致力于使学生理解计算机在解决问题中的作用,并且帮助学生, 不论其专业,使他们对于能够完成有用的小程序的目标充满信心。

五、学习方法

知乎问答:零基础,应当如何开始学习 Python ?--by@黎敏

虽然我不是Python高手,但我是零基础,之前会的都是软件PS,PPT之类。

如果目的是想成为程序员,参考教学大纲。

如果只是学程序,理解科技,解决工作问题,我的方式可以参考使用:

  1. 找到合适的入门书籍,大致读一次,循环啊判断啊,常用类啊,搞懂(太难的跳过)

  2. 做些简单习题,字符串比较,读取日期之类 《Python Cookbook》不错(太难太无趣的,再次跳过,保持兴趣是最重要的,不会的以后可以再学)

  3. 加入Python讨论群,态度友好笑眯眯(很重要,这样高手才会耐心纠正你错误常识)。 很多小问题,纠结许久,对方一句话点播思路,真的节约你很多时间。耐心指教我的好人,超级超级多谢。

  4. 解决自己电脑问题。 比如下载美剧,零散下载了2,4,5,8集,而美剧共12集,怎样找出漏下的那几集?然后问题分解,1读取全部下载文件名,2提取集的数字,3数字排序和(1--12)对比,找出漏下的。

  5. 时刻记住目的,不是为了当程序员,是为了解决问题。

比如,想偷懒抓网页内容,用urllib不行,用request也不行,才发现抓取内容涉及那么多方面(cookie,header,SSL,url,javascript等等),当然可以听人家劝,回去好好读书,从头读。

或者,不求效率,只求解决,用ie打开网页再另存为行不行?ie已经渲染过全部结果了。

问题变成:1--打开指定的10个网页(一行代码就行)。更复杂的想保存呢?利用已经存在的包,比如PAM30(我的是Python3),直接打开ie,用函数outHTML另存为文本,再用搜索函数(str搜索也行,re正则也行) 找到数据。简单吧?而且代码超级短。

  1. 保持兴趣,用最简单的方式解决问题,什么底层驱动,各种交换,留给大牛去写吧。我们利用已经有的包完成。

  2. 耐心读文档,并且练习快速读文档。拿到新包,找到自己所需要的函数,是需要快速读一次的。这个不难,读函数名,大概能猜到是干嘛的,然后看看返回值,能判断是不是自己需要的。

  3. 写帮助文件和学习笔记,并发布共享。教别人的时候,其实你已经自己再次思考一次了。

我觉得学程序就像学英文,把高频率的词(循环,判断,常用包,常用函数)搞懂,就能拼装成自己想要的软件。

然后,http://stackoverflow.com 和 http://Google.com 是很好用的。

然后,坚持下去。

一定要保持兴趣,太复杂的跳过,就像小学数学,小学英语,都是由简入深。

网络很平面,无数国际大牛著作好书,关于Python,算法,电脑,网络,或者程序员思路,或者商业思维(浪潮之巅是本好书)等等,还有国际名校的网络公开课(中英文字幕翻译完毕,观看不是难事),讲计算机,网络,安全,或者安卓系统,什么都有,只要能持续保持兴趣,一点点学习下去,不是难事。

所有天才程序员,都曾是儿童,回到儿童思维来理解和学习。觉得什么有趣,先学,不懂的,先放着,遇到问题再来学,效果更好。

唯一建议是,不要太贪心,耐心学好一门优雅的语言,再学其它。虽然Javascript做特效很炫,或提某问题时,有大牛建议,用Ruby来写更好之类,不要改方向。就像老笑话:“要学习递归,必须首先理解递归。”然后死循环一直下去。坚持学好一门语言,再研究其他。

即使一门语言,跟网络,数据库等等相关的部分,若都能学好,再学其他语言,是很快的事情。

另外就是,用学英文的耐心来学计算机,英文遇到不懂的词,抄下,查询。

python里,看到Http,查查定义,看到outHtml,查查定义,跟初学英语时候一样,不要直接猜意思,因为精确描述性定义,跟含糊自然语有区别的。而新人瞎猜,很容易错误理解,wiki,google很有用。

芝麻问答:如何学习Python 点击打开链接作者:@halida

如何学习python

我们假设你是一个初级程序员, 只懂得一点点的基础知识, 希望能够用python来做开发. 这篇文档就是为了满足以上目标而写的.

大纲

按照这篇文档所指示的任务过一遍, 你就能够做到:

熟悉python语言, 以及学会python的编码方式. 熟悉python库, 遇到开发任务的时候知道如何去找对应的模块. 知道如何查找和获取第三方的python库, 以应付开发任务. 学习步骤

安装开发环境

如果你在window下, 去下载pythonxy安装起来, 然后运行python, 进入python解释环境.

如果你在ubuntu下, 执行: sudo apt-get install python, 然后在命令行下运行python, 进入python解释环境.

学习方法

作为一名成熟的开发人员, 我学习新东西(假设是pyqt)的习惯方式是:

直接用google搜索pyqt的官方网站. 按照官方网站的说明, 下载pyqt. (如果是用ubuntu, 看看软件库里面是否有足够新的版本) 下载过程中, 开始阅读官方网站上面的教程. 一边看教程, 一遍按照教程使用pyqt. 如果发现教程不够全面, 用google搜索是否有对应的教学书籍可以看. 示例学习完毕, 开发一个玩具程序, 用来检验自己是否需要用到的功能. 开始学习python

我建议你学习的过程也按照上面来, 首先过一遍python官方文档:

http://docs.python.org/tutorial/index.html

然后做 http://www.pythonchallenge.com/ 这个网站上面的题目.

如果卡在某一关太久, 可以看答案(google python challenge answer), 做完后看看别人的编码方式和自己有什么区别.

小项目

做完一遍后, 你会发现已经熟悉了基本的python开发. 然后做点小项目吧. 这里是一些题目, 挑感兴趣的去做.

  • 写一个简单的计算器/记账软件/扫雷游戏(用pyqt库做界面)
  • 写一个聊天室网站(用webpy框架, jquery刷新新的回复)
  • 写一个爬虫, 获取douban上面所有用户的地点, 画地点分布的直方图(用lxml解析, 保存数据到sqlite里面去, 用matplotlib画图)

FAQ

Q: 遇到了问题, 到哪里求助?

A: 上 http://groups.google.com/group/python-cn (需要翻墙) 或者 http://stackoverflow.com 提问就可以了.

Q: 如何查找python的某个功能?

A: 看官方文档. http://docs.python.org/library/index.html

Q: 如何用python完成一个任务(比如写网站)?

A: google: python 写网站, 或者 google: python web development.

知乎问答:你是如何自学 Python 的?点击打开链接 作者:@成增存

阶段一:前辈领进门。 第一眼是一个前辈给我看了看Python的代码,因为自己最早学习的是Java语言,第一眼看到Python的时候,前辈说,“Python是面向对象的”,然后就 打印了几句代码。可我怎么也看不出到底哪里是“面向对象”的。前辈说“在Python里,一切皆对象”,我才有点领悟的说道:“原来把什么看成对象,就是面向对象”,哈哈。

阶段二:开始看的是《Dive into Python》、《Leaning python》、《Python Doc》。 因为有很多语言学习经历,很快就完成了初步语法和使用学习。太复杂的特性还是在使用中逐步掌握的。

阶段三:开始使用Python做自己的一些日常工作。 比如Python搜索文件,Python批量处理等,使用最多的还是re模块和socket相关模块。写了大量的例子,让自己对Python更加喜爱,也更加熟悉。此时翻阅最多的是《Python Doc》的指南。不管是语言参考、库参考、Demo参考,都有大量可使用的内容,内容质量很高堪比JDK。

阶段四:生产上马。 开始使用Django,Flask,Tornado开发一些web应用,写一些日常使用的工具包等。逐步提升设计能力,和整体代码的管理能力。

阶段五:更合理的分配好C,Java,Python三门语言各自擅长的部分。 把合适的语言用到合适的地方。尽管一门语言有时候可以搞定所有的,但用擅长的语言解决合适的问题才是效率最高的。这也是“Python的大道至简”的理念带给我的帮助和认识。

PS:其中过程中主要的一些 方法 :

  1. 看书。学习的基础。

  2. 自己本地练习。编程还是要实践出真知。

  3. 资料查询。google,stackoverflow等多关注。

  4. 交流。各种论坛上的python group,论坛。最早去的CU,JavaEye,不过现在貌似去的少了。google group 必须订阅。

    学习+实践+总结,掌握语言的法宝。

六、Just Do It

看了这么多资料了,还没动手敲代码?

好吧,最好一篇文章《我在学习编程中犯的两个 最大错误 》点击打开链接

Just do it 。动手敲代码吧。

注:本文由@史江歌()根据互联网资料收集整理而成。

七、更新

Python技术博客、招聘、开源软件、Python中文网站导航

遇到python问题怎么样解决?python help dir stackoverflow docs google

在线视频教学(英文)codecademy

英文Python for beginners

英文How do I learn Python from zero to web development?(各种电子书推荐)点击打开链接

Python应用与实践 Python是什么?谁在用它?相关工具?作者:@吴秦

Python模块学习 相当于翻译官网文档

针对有其他语言经验的人,英文:Learn X in Y minutes 中文翻译Y分钟学会Python(译)

PyCoder’s Weekly 中文翻译 说明:文章质量很高

PEP 20 (Python之禅) 的实例 说明:code_stype

Unicode之痛 必读

有关 Python 2 和 Sublime Text 中文 Unicode 编码问题的分析与理解 必读

stackoverflow上Python相关回答整理翻译

Python语言总结-初级中级高级教程 作者:@Crifan Li

Python Guide Python 最佳实践(英文)

Python 最佳实践指南(中文) 关于Python安装、配置、和日常使用的最佳实践手册。

Python 最佳实践指南 2018 Python 日常使用的最佳实践,高级 Python 开发者必知必会的知识

《码农周刊》干货精选(Python 篇) 精选总结

Python 3 Module of the Week Python 标准库的使用

Python - 100天从新手到大师 100天从新手到大师

Python 和 Diango 学习资料,书籍,文章,以及实战项目

What the f*ck Python!

https://github.com/leisurelicht/wtfpython-cn

八、爬虫以及模拟登陆新浪微博

知乎:Python 爬虫如何入门学习

Python爬虫学习系列教程 @崔庆才系列教程,入门、实战、爬虫利器介绍、进阶

Python模拟登录新浪微薄(使用RSA加密方式和Cookies文件)

http://uliweb.clkg.org/tutorial/view_chapter/240

一个简单的分布式新浪微博爬虫

用python爬虫抓站的一些技巧总结

使用python爬虫抓站的一些技巧总结:进阶篇

网络爬虫系列

九、工具

Windows系统下,Python相关包Windows Binaries for Python Extension Packages