Python 的经典入门书籍
实python非常适合初学者入门,上手很容易。
我就是完全通过网上资源学了python的。
最大的是3点经验:
1.找一本浅显易懂,例程比较好的教程,从头到尾看下去。不要看很多本,专注于一本。把里面的例程都手打一遍,搞懂为什么。
2.去找一个实际项目练手。我当时是因为要做一个网站,不得已要学python。这种条件下的效果比你平时学一门新语言要好很多。所以最好是要有真实的项目做。可以找几个同学一起做个网站之类。
3.最好能找到一个已经会python的人。问他一点学习规划的建议,然后在遇到卡壳的地方找他指点。这样会事半功倍
推荐几个网上的资源:
简明Python教程
与孩子一起学编程
Head First Python 中文版
笨办法学Python
Dive.Into.Python中文版(附课程源码)
Python核心编程
深入理解Python
Python标准库
Python编程指南
解压密码均为:http://crossin.me
======================
在线教程:
简明Python教程:简明 Python 教程
(较新版):A Byte of Python
Dive into Python:Dive Into Python
现在有很多人都想学一点编程,但是直接看教程又有点太难下手。
之前有几个朋友都问我能不能指导他们一下入门学个语言,于是我就弄了个微信公众号“Crossin的编程教室”。每天讲一点点很简单的内容。如果有0基础想入门的新手,不如来跟着看看,欢迎加入我们共同学习的队伍。
•
dylanninin,IT Engineer
多关注下牛人,多实践。
更新2013-12-17
前段时间整理了一篇博客,搜集了学习Python入门、数据库和Web开发的一些资料,原文见 http://dylanninin.com/blog/2013/11/23/python_resource.html,这里摘抄一下。
入门和基础
Python有Python 2.x 和Python 3.x 之分,争论很多,见Python2orPython3。初学者不用考虑这个问题,可以从Python 2.x入门,之后再讨论会多一些理性。
洪强宁:Python于Web 2.0网站的应用:豆瓣网洪强宁在QCon北京2010中的技术分享,若不能访问,请自备梯子;另外,豆瓣的阿北很值得关注。
A Byte of Python:即简明Python教程,边看边练习就对Python有基本的了解,可以轻松存活。
Google's Python Lessons:Google出品的Python教程,值得信赖。
Python Documentation:Python在线文档,若嫌枯燥,可以直接看Python Standard Lib。
42区:python入门指引:江湖人称张教主的Python入门指引,除开《Python核心编程》。严格来说,这是张教主的一份Python资料索引。
CS61A: SICP with Python:作为计算机相关人士,SICP都不了解,实在很惭愧,所以来还债了。这应该是起源于MIT的SICP教程,一个用Python,一个用Scheme。
看到一个有趣的python的招聘测试:同学发的一个贴,总结了一下应聘中遇到的问题,并给出了相应的资料来学习。如果想检测下自己的Python水平,请自觉移步北京视讯天下的开发测试。
MOOC们:在线公开课很多,见课程图谱;仅在Codecademy上学了一点;现在希望能够每天跟进一些感兴趣的课程,多多学习。
书:去年6月份一同事离职,我买了两本黑客与画家,一本送给他(博客一起去看海),另一本给部门老大;他回送了一本Python源代码剖析,看书名就知道是讲底层原理的,有机会啃啃。
源代码:直接到Github上去找吧。
Python与数据库
在项目开发中,数据库应用必不可少。这里汇总下目前接触过的数据库和使用教程。
SQL,计算机出身的人应该都学过,若有疑问可以参考Wikipedia SQL,并使用SQLite做下练习。
PEP249: DB API:数据库访问接口规范,当时还做了一份笔记。
SQLite:教程见SQLite Python Tutorial;若要深入了解,推荐The Definitive Guide to SQLite;看此书时,做了一些好句子、段落的摘要,见Sentences in SQLite 3。
Oracle Database:有可能这是最庞大的数据库,所以需要专职的DBA。官方教程The Mastering Oracle+Python Series,快速入门教程cx_Oracle Quick Start。
SQLAlchemy:Python的ORM标准和框架,解决面向对象编程和关系数据库模式不匹配的问题。
数据库理论除了SQL,还有另一派NoSQL。
关于常见NoSQL产品的比较见Main NoSQL Database Comparison;若果需要一些NoSQL的理论知识和基本概念,见The NoSQL Ecosystem、Big Data与NoSQL。目前仅用过MongoDB和Redis。
MongoDB:如果熟悉SQL,MongDB的学习成本会很低;相关资料见Python Language Center in MongoDB;用过的两个驱动:1)PyMongo,提供了类似Mongo Shell的接口;2)MongoEngine: A Python Object-Document-Mapper for working with MongoDB,即MongoDB的'ORM'框架,此时变成了'ODM',MongoEngine on Github。
Redis:Redis需要一些学习成本,入门推荐The Little Redis Book;用过的Python客户端驱动Redis-py;更多客户端见Redis Clients。
NoSQL建模:SQL发展了几十年,有很成熟的建模技术,那么NoSQL呢,见陈皓:NoSQL数据建模技术,原文NoSQL Data Modeling Techniques。
更多资料:NoSQL英文站点见NoSQL Database;NoSQL中文论坛见NoSQL Fan:关注NoSQl相关的新闻和技术。NoSQL Fan中,MongoDB和Redis资料很多,已经形成了资料专题,包括介绍、内部实现、应用与优化、新闻等,总能发现你想要的东西:1)NoSQL Fan:Redis资料汇总专题;2)NoSQL Fan: MongoDB资料汇总专题。
Python与Web开发
Python的Web框架众多,见Web Frameworks for Python,总有一款适合你或你的项目,实在不行,请动手打造自己的框架;为什么会有这么多框架呢,见Why so many Python wen frameworks?。
Web.py:已故Aaron Swartz的
框架。一句话介绍"web.py is a web framework for Python that is as simple as it is
powerful. web.py is in the public domain; you can use it for whatever
purpose with absolutely no
restrictions."。接触的第一个Web框架,后来模仿MovableType,写了一个简单的博客,见Blog on Github,在线demo Pastime Paradise;碰到的坑点是模板中嵌套Python代码一直有缩进问题。Flask:
一句话介绍"Flask is a lightweight web application framework written in Python
and based on the Werkzeug WSGI toolkit and Jinja2 template engine. It
is BSD licensed. Flask is called a microframework because it keeps the
core simple but
extensible"。因为工作变动,练习过一段时间的Flask,以便熟悉开发的工具链;如果没有Rails,我想这才是自己首选的Web开发框架:
simple but extensible and for fun。实战教程The Flask Mega-Tutorial。Tornado:来自FriendFeed的异步框架,FriendFeed被Facebook收购后开放了源代码,见Tornado on Github。一句话介绍"Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed"。Tornado主要特点是non-blocking,如果你想开发real-time的Web应用,Tornado是一个不错的选择。
Django:
一句话介绍"Django is a high-level Python Web framework that encourages rapid
development and clean, pragmatic design.",接触不多,作为全栈式框架,听说它的组件都是Made in
Django。更多资料见Django资料。
IDE
- Vim + Python Mode。目前就用这个方案,很方便,直接引用同学的效果图。关于Vim资料和讨论,请移步Vim资料大全;关于Vim更多插件和演示,请移步k-vim on Github;关于Git,Github,请移步本站Free Blog with Github Pages。
社区
周刊
- Python Weekly:每周更新,包括Python相关的文章、教程、演讲、书籍、项目、工作等。
- Pycoder's Weekly:与Python Weekly类似,两者可以互为补充,了解过去一周动态。
- 码农周刊: developerWorks出品的周刊,来自国人的分享。可以先看为什么要做《码农周刊》?;接着《码农周刊》用到的一些技术; 再接着周刊回顾。这里不仅仅是Python。
前后有将近三年的时间。期间有不少门槛,但也充满乐趣。乐趣是自学的最大动力。Python是一个容易编写,又功能强大的动态语言。使用Python,可
以在短短几行内实现相当强大的功能。通过自己写一些小程序,迅速的看到效果,发现问题,这是学习Python最便利的地方。
在学习Python之前,可以了解一下Python的特点和设计理念(Python简史)。
在设计之初,Python就试图在复杂、强大的C和方便、功能有限的bash之间,找到一个平衡点。Python的语法比较简单,用起来很方便,因此有些
人把它当作脚本语言使用。但Python要比普通的脚本语言功能强大很多。通过良好的可拓展性,Python的功能相当全面,应用面很广:web服务器,
网络爬虫,科学运算,机器学习,游戏开发……
当然,天下没有免费的午餐,也没有完美的语言,Python为了达到上述两点,有意的牺牲了Python的运行速度。如果你是在编写高业务量、运算量的程
序,可能Python并不是最好的选择。
-----
Python的主体内容大致可以分为以下几个部分:
- 面向过程。包括基本的表达式,if语句,循环,函数等。如果你有任何一个语言的基础,特别是C语言的基础,这一部分就是分分钟了解下Python规定的事。如果你没有语言基础,建议从Python Programming为参考书。这本书是计算机导论性质的教材,不需要编程基础。
- 面向对象,包括面向对象的基本概念,类,方法,属性,继承等。Python是面向对象的语言,“一切皆对象”。面向对象是很难回避的。Python的面向对象机制是相对比较松散的,不像Java和C++那么严格。好处是容易学,容易维护,坏处是容易犯错。
- 应用功能,包括IO,数据容器如表和词典,内置函数,模块,格式化字符串等。这些在其它语言中也经常出现,有比较强的实用性。
- 高级语法,上下文管理器,列表推导,函数式编程,装饰器,特殊方法等。这些语法并不是必须的,你可以用前面比较基础的语法实现。学这些高级语法的主要原因是:它们太方便了。比如列表推导一行可以做到的事情,用循环结构要好几行才行。
学习Python主体最好的参考书是Learning Python,它非常全面,满满的都是干货。虽然很厚,读起来并不难读。另一个是参考官网的教程Python.org
-----
Python号称“Battery Included",也就是说,功能都已经包含在了语言中。这一自信,主要来自Python功能全面的标准库。标准库提供了许多功能模块,每个模块是某一方面功能的接口,比如文件管理,操作系统互动,字符处理,网络接口,编码加密等等。
The Python Standard Library中,你可以看到标准库模块的列表。这里也是标准库最好的学习资料。如果想找书,我只看到过两本关于标准库的:
Python Essential Reference
The Python Standard Library by Example
说
实话,这两本都不算很好的标准库教材,而标准库的参考书也确实很难写。因为标准库只是调用功能的接口,最终实现的是Python和系统的互动。这需要很强
的系统知识,比如文件系统知识,进程管理,http原理,socket编程,数据库原理……
如果这些知识都已经准备充分,那么标准库学起来完全没有难度。然而,这些背景知识的学习并非一朝一夕的事情。
更深入的Python学习也
是如此,需要大量的背景知识,而不是Python自身。如果你对Python的编译和运行机制感兴趣,你可以往Python底层这一深度挖。如果你对应用
感兴趣,你可以多学习几个自己用的上的第三方包。学到这个时候,就是要自己探索的广阔空间了。
-----
基本上,学过主体内容之后,Python还是要靠做项目来练习。有不少小练习题类型的资料,比如Python Cookbook。
但更好的方式是自己去想一些应用场景,用Python来解决。Python功能全面,所以不要担心自己想的问题Python解决不了
(基本上Python解决不了的问题,别的语言也没戏)。比如我学习多线程的动力,就因为要并行的下载大量的文件。基本上一个项目下来,会用到
Python好几块的内容,知识会特别巩固。
最后,和其它任何知识的学习一样,笔记和总结很重要。在看参考书和看网页时,可以做一些笔记。等到学了一段时间后,可以把笔记整理成更有条理的参考卡片(reference card),或者写博客。这也是我写“Python快速教程”的主要原因。另外这个教程内容的顺序,也是我认为的比较合理的学习顺序,仅供参考。
时间分为4周,全部自学,仅提供大纲。适用于Web方向:
1、Week1:读完《简明Python教程》,适应Python开发环境
2、Week2:写个爬虫,需要深入了解re、urllib2、sqlite3、threading,Queue等几个模块。需要用上多线程抓取,正则表达式分析,并发资源控制,重新开启程序自动继续抓取和分析
3、Week3:学习一种Web开发框架,推荐Flask、webpy之类的,学个数据库接口如sqlite3,写个简单的web应用如博客
4、Week4:给产品做个小功能并走完测试和上线流程,各个时期是不同的
我在之前的几家公司招聘工程师时,学过Python的其实较少。更常见的情况是人聪明,招来再学Python。就是按照如上流程。这个流程安排的挺轻松的,我找到的所有人都成功完成了这个流程。并且之后工作也很顺利。
http://learnpythonthehardway.org/book/
零编程基础学python,浅显易懂,操作性强。中文翻译版本:
笨办法学 Python
http://lpthw-cn.ducktypist.com/en/latest/index.html
入门以后就跟其他一样了,看官方文档、看代码、看blog、google group、python社区还有各种书。
当开始熟悉 Python 的时候,尝试自己写一些脚本或软件来干一些有趣的事情。后来图像处理课程作业我也用 Python 来完成。
与此同时,我坚持写博客来记录一下自己的学习心得。
现在我开始学习用 Python 的 web 应用。它有很多好用的框架例如 Django, Tornado等,可以轻松地做一个网站,用 Python 做网站后端也是一个近年来流行的趋势。
学习 Python,最重要的是要写出 pythonic 的代码,这不是一朝一夕的事情。我喜欢 Python,就是因为它的简洁和强大。不要重复造轮子,学会优雅地使用 Python。Pythonic到底是什么玩意儿?
附我看过的觉得不错资料
PyCoder’s Weekly 中文翻译
学好Python必读的几篇文章
也应该订阅一些python大牛的博客有哪些 Python 大牛的 blog 推荐?
和邮件列表http://groups.google.com/group/python-cn/topics
杨昆,剑宿吾命,何来宿命
大约又过了半年,一个星期把Python简明教程看完了,还是没学会。
后来约过了一年,迷上了telnet bbs,用python给cterm写bbs挂站刷小游戏外挂,没两天就基本掌握了这门语言。
所以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 必须订阅。
学习+实践+总结,掌握语言的法宝。
0x00--遇到真爱前
毕业第一年, 女朋友出国了, 业余时间一大把, 说起兴趣还是喜欢捣鼓电脑, 就咨询了学计算机专业的一批高中同学:
"现在计算机都是什么编程语言啊.....???"
"JAVA C#...."
当
时我还是知道点 C语言和C++的, 这一看到C#感到无比亲切啊, 这不就是嫡系嘛!!!于是搜罗一堆C#的资料, 开始学习,
至今只记得Console.WriteLine()..了, 学了一段时间, 按照资料做了一些例子,
后来工作忙就不了了之了....那些按照教材写的例子也都通通还给教材了...光写例子是学不会编程的....黑了教材的例子....C#不是我的真爱!!!
0x01--通过媒人结识真爱
后
来工作又清闲了, 闲着没事逛逛知乎,
经常看到Python的各种"软文"....他妈的就这么上钩了(结果现在我又在知乎上写Python的"软文",
可见Python真是个邪教).....于是我开始广泛搜集关于Python的各种资料, 就像喜欢一个姑娘就想要知道关于她的一切.....
0x02--摩擦出爱的火花
媳妇刚入门的那几天, 我主要是靠简明 Python 教程来爱抚她的, 了解了书中的主要姿势, 没过多久, 我就能够利用已掌握的姿势, 举一反三地跟她玩出新花样来, 那些日子真可谓夜夜笙歌,欲罢不能啊....
0x03--步入婚姻殿堂
经过时间和实践的检验, 我决定下半辈子就跟她一块过了...
0x04--幸福生活
我用Evernote记录下我和Python的所有记忆, 当我记不得一些重要的"纪念日"的时候, Python她就会冲我发飙, 爱答不理的, 于是我偷偷翻一下Evernote, 我就记起来了, Python她又是那么的温柔体贴了^_^
平时, 订阅并关注着一些前辈:
酷壳 – CoolShell.cn
阮一峰的网络日志
EVILCOS | 懒人在思考,安全(黑客)、架构、团队的各种观点与分享
学习他们对生活的感悟和最新的姿势, 运用到我的生活中来
0x05--创造价值
在某宝上兼职程序代写了一段时间, 排名第一的店里的所有Python单子都是我的完成的, 还有很多本来客户要求用C/C++或C#的订单, 都被我忽悠成Python的了....Python的开发效率让我兼职第一个月的收入就甩开我本职工作薪水好几条街....好几倍好么..实在是太快了...在兼职的这段时间里, 我的姿势长进速度迅猛, 比那书上的例子.......(不黑书上的例子了, 没有家里的黄脸婆你哪傍的上小三啊)...在实践中学习是最快的, 也是最好的.
0x06--想要创造爱的结晶
现在我想把学习Python的经历做个总结, 如果有精力和时间, 我会去开一个网络课程连载, 帮助大家学习Python, 到时候欢迎大家捧场
后
来我渐渐开始掌握Python的思考方式是在Codeforces上刷题——这上面有些非常简单的模拟题,用Python做正合适,而且在这上面还可以看
到别的给这道题提交程序的人的代码。我先自己用Python写一个,等到Accepted以后,再看看那些同样Accepted的、同样用Python做
这一题的人的程序是怎么写的,然后尝试按照他们的思路简化自己的程序,到后来甚至尝试能不能进一步简化他们的程序。“简化”指的不是追求影响可读性的短
码,短码和简洁之间,自己尝试着把握。总之就是写一个程序,体会别人的,不断改进自己的。
再后来我写Python程序的时候,有时候需要什么功
能,我觉得应该有很简单的写法(这个时候已经渐渐掌握Python的思考方式了,所以很多时候可以判断出来什么时候Python该有简单的写法),但我自
己不会,我就google,通常情况下是找到Python的文档(Python本身有实现这一功能的情况下),还有时候会找到一些
StackOverflow或者什么网站上的trick(Python本身没有对应实现的时候)。
对了,后来我又读了《Python源码剖析》,这本书不是讲Python的,主要是讲Python实现的,但会让你对Python的内部机制更加了解,从而写出效率上更高的Python程序。
后来网吧管理系统不知道出了什么故障
我就被网管赶走了
我的感受是,你只需要
1. 装好python
2.
然后想一个有趣的小任务。举一些例子:1).因为我是个臭美的女生,我曾经用python写过一个给淘宝店家的所有评论自然语言处理的小脚本,看看我在哪
家买化妆品比较好哈哈。2).另外因为每次吃饭都很难决定吃什么,我就简单的写了一个按概率随机抽样的脚本,帮我掷骰子。
可能对于大部分程序员来说,这些都是小小小case,但是自己觉得有趣的问题总是驱动我一直去完善、去学习,比起我在看一本python入门书的时候循序渐进要更有意思,更激发我的乐趣。
3. 打开编辑器,用你自己的思路和原先掌握的编程方式去编写
4.
用google,用一切办法去解决脚本里的错误和bug。google一段时间后,你自己就会发现大神门推荐的stack
overflow通常很有帮助,“a byte of
python”这本书看起来很不错,原来这个还有一个社区大有牛人在,原来python在这里的用法是不同的……你会觉得它很优雅很易学,或者你会觉得它
不够高效,但是你已经拥有自己的经验,有了最主观的学习。
通常在学习新技术、新知识的时候,我们就叫这种经验和感觉为直觉(intuition),我个人觉得这是最最最难的的一扇门,而多少大牛也无法指给你的一扇门。
5. 然后你可以参考其他答案里推荐的各种资料、论坛、经验,开始事半功倍的,有针对性的学习。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
如果你从来没有接触过编程语言,没关系,只要你有解决问题的清晰逻辑(大部分人一定都有的)也可以。
1. 同样的,装好python
2. 想想自己用它来做点啥呢?假如你要找到asasasssasas中的sss在什么位置,也许你不知道程序怎么运行,可是如果让你来做这项工作呢?
从左往右,一个一个的比对,如果看到了一个s,接着往下比对,如果第二个不是,很遗憾,继续往后,直到我看到了三个s!找到了……。
然后你就可以开始写了:
> string=“asasasssasas”
> 如果string(1位置~3位置)=“sss”
> 就说“找到了!”
> 不然的话去看string(2位置~4位置)=“sss”
> ……
你写出来了,成功了一半,可是完全无法运行。
3. 你去google,归纳一下问题:“1).python里的如果怎么写?2).python中 (你可能也不知道这是字符串)的位置如何表示……” 如果耐心,你总能找到答案。
最后你学会了用循环、用if...else,几个有趣的编程体验之后,你开始有了自己对编程和python的感觉。
4. 然后你可以去看书,细细咀嚼,逐渐提升,你有了intuition,看书的时候不经意的地方有了’似曾相识“、”温故知新“带给你的鼓励,你怀着热情,走上成为python高手的道路。
我真是啰嗦且业余,各位大神不要笑话我 >D< 。
如果英文对你来说不是问题的话,建议你可以跟着学
从基础教起,还会带着做一些小游戏
另外推荐一个他们的python小程序编程云平台:CodeSkulptor
我学习一门语言喜欢这样
有一本书,python推荐python核心编程,方便随时查找
给自己订个目标,如写一个爬虫和一个web论坛
然后去完成目标,中间会涉及到很多不懂,查书,学习
完成后,再过一遍全书,改进已写的东西
kaifeng Jin,北京邮电大学
1.Python数据结构篇
数据结构篇主要是阅读[Problem Solving with Python]( Welcome to Problem Solving with Algorithms and Data Structures)时写下的阅读记录,当然,也结合了部分[算法导论]( http://en.wikipedia.org/wiki/Introduction_to_Algorithms)
中的内容,此外还有不少wikipedia上的内容,所以内容比较多,可能有点杂乱。这部分主要是介绍了如何使用Python实现常用的一些数据结构,例
如堆栈、队列、二叉树等等,也有Python内置的数据结构性能的分析,同时还包括了搜索和排序(在算法设计篇中会有更加详细的介绍)的简单总结。每篇文
章都有实现代码,内容比较多,简单算法一般是大致介绍下思想及算法流程,复杂的算法会给出各种图示和代码实现详细介绍。这一部分是下面算法设计篇的前篇,
如果数据结构还不错的可以直接看算法设计篇,遇到问题可以回来看数据结构篇中的某个具体内容充电一下,嘿嘿。
(1)[搜索]( http://hujiaweibujidao.github.io/blog/2014/05/07/python-algorithms-search/) 简述顺序查找和二分查找,详述Hash查找(hash函数的设计以及如何避免冲突)
(2)[排序]( http://hujiaweibujidao.github.io/blog/2014/05/07/python-algorithms-sort/) 简述各种排序算法的思想以及它的图示和实现
(3)[数据结构]( http://hujiaweibujidao.github.io/blog/2014/05/08/python-algorithms-datastructures/) 简述Python内置数据结构的性能分析和实现常用的数据结构:栈、队列和二叉堆
(4)[树总结](http://hujiaweibujidao.github.io/blog/2014/05/08/python-algorithms-Trees/) 简述二叉树,详述二叉搜索树和AVL树的思想和实现
2.Python算法设计篇
算法设计篇主要是阅读[Python Algorithms: Mastering Basic Algorithms in the Python Language](http://link.springer.com/book/10.1007%2F978-1-4302-3238-4)[**点击链接可进入Springer下载原书电子版**]之后写下的读书总结,原书大部分内容结合了经典书籍[算法导论](http://en.wikipedia.org/wiki/Introduction_to_Algorithms),
内容更加细致深入,主要是介绍了各种常用的算法设计思想,以及如何使用Python高效巧妙地实现这些算法,这里有别于前面的数据结构篇,部分算法例如排
序就不会详细介绍它的实现细节,而是侧重于它内在的算法思想。这部分使用了一些与数据结构有关的第三方模块,因为这篇的重点是算法的思想以及实现,所以并
没有去重新实现每个数据结构,但是在介绍算法的同时会分析Python内置数据结构以及第三方数据结构模块的优缺点,也就意味着该篇比前面都要难不少,但
是我想我的介绍应该还算简单明了,嘿嘿,除此之外,里面还有很多关于python开发的内容,精彩不容错过!
这里每篇文章都有实现代码,但
是代码我一般都不会分析,更多地是分析算法思想,所以内容都比较多,即便如此也没有包括原书对应章节的所有内容,因为内容实在太丰富了,所以我只是选择经
典的算法实例来介绍算法核心思想,除此之外,还有不少内容是原书没有的,部分是来自算法导论,部分是来自我自己的感悟,嘻嘻。该篇对于大神们来说是小菜,
请一笑而过,对于菜鸟们来说可能有点难啃,所以最适合的是和我水平差不多的,对各个算法都有所了解但是理解还不算深刻的半桶水的程序猿,嘿嘿。
本篇的顺序按照原书[Python Algorithms: Mastering Basic Algorithms in the Python Language](http://link.springer.com/book/10.1007%2F978-1-4302-3238-4)的章节来安排的(章节标题部分相同部分不同哟),为了节省时间以及保持原著的原滋原味,部分内容(一般是比较难以翻译和理解的内容)直接摘自原著英文内容。
**1.你也许觉得很多内容你都知道嘛,没有看的必要,其实如果是我的话我也会这么想,但是如果只是归纳一个算法有哪些步骤,那这个总结也就没有意义了,我觉得这个总结的亮点在于想办法说清楚一个算法是怎么想出来的,有哪些需要注意的,如何进行优化的等等。**
**2.
你也许还会说算法导论不是既权威又全面么,基本上每个算法都还有详细的证明呢,读算法导论岂不更好些,当然,你如果想读算法导论我不拦着你,读完了感觉自
己整个人都不好了别怪小弟没有提醒你哟,嘻嘻嘻,左一个性质右一个定理实在不适合算法科普的啦,没有几个人能够坚持读完的。**
**3.如果你细读本系列的话我保证你会有不少收获的,需要看算法导论哪个部分的地方我会给出提示的,嘿嘿。温馨提示,精彩内容从第4节开始哟,么么哒 O(∩_∩)O~**
(1)[Python Algorithms - C1 Introduction]( http://hujiaweibujidao.github.io/blog/2014/07/01/python-algorithms-introduction/)
本节主要是对原书中的内容做些简单介绍,说明算法的重要性以及各章节的内容概要。
(2)[Python Algorithms - C2 The basics]( http://hujiaweibujidao.github.io/blog/2014/07/01/python-algorithms-the-basics/)
本节主要介绍了三个内容:算法渐近运行时间的表示方法、六条算法性能评估的经验以及Python中树和图的实现方式。
(3)[Python Algorithms - C3 Counting 101]( http://hujiaweibujidao.github.io//blog/2014/07/01/python-algorithms-counting-101/)
原书主要介绍了一些基础数学,例如排列组合以及递归循环等,但是本节只重点介绍计算算法的运行时间的三种方法
(4)[Python Algorithms - C4 Induction and Recursion and Reduction](http://hujiaweibujidao.github.io/blog/2014/07/01/python-algorithms-induction/)
本节主要介绍算法设计的三个核心知识:Induction(推导)、Recursion(递归)和Reduction(规约),这是原书的重点和难点部分
(5)[Python Algorithms - C5 Traversal]( http://hujiaweibujidao.github.io/blog/2014/07/01/python-algorithms-traversal/)
本节主要介绍图的遍历算法BFS和DFS,以及对拓扑排序的另一种解法和寻找图的(强)连通分量的算法
(6)[Python Algorithms - C6 Divide and Combine and Conquer](http://hujiaweibujidao.github.io/blog/2014/07/01/python-algorithms-divide-and-combine-and-conquer/)
本节主要介绍分治法策略,提到了树形问题的平衡性以及基于分治策略的排序算法
(7)[Python Algorithms - C7 Greedy]( http://hujiaweibujidao.github.io/blog/2014/07/01/python-algorithms-greedy/)
本节主要通过几个例子来介绍贪心策略,主要包括背包问题、哈夫曼编码和最小生成树
(8)[Python Algorithms - C8 Dynamic Programming]( http://hujiaweibujidao.github.io/blog/2014/07/01/python-algorithms-dynamic-programming/)
本节主要结合一些经典的动规问题介绍动态规划的备忘录法和迭代法这两种实现方式,并对这两种方式进行对比
(9)[Python Algorithms - C9 Graphs]( http://hujiaweibujidao.github.io/blog/2014/07/01/python-algorithms-graphs/)
本节主要介绍图算法中的各种最短路径算法,从不同的角度揭示它们的内核以及它们的异同
“小”程序,包括算法和界面,最后要打包成可执行文件。之前有Matlab、C的基础,但完全没听说过Python。这两周除了在网上看一些例子,就是查
文献,做算法。我们平时还有好多课啊!不过在重压下才最后还是做完了。人生第一个千行代码程序达成( ̄^ ̄)ゞ
归纳总结下是怎么自学的:
1、
首先要有一个具体的项目。有了需求和目标,你才可以有目的地查找需要用到的函数包。才会真正学懂、学会应用不同的函数、语句。相关书籍可以买,不过请把它
当作工具书。遇到问题,相关书籍是一个很靠谱的帮手。不过绝对不要光跟着书上的例程来学。学了后面的,前面的还是会忘。时间稍微久点,所有的都忘了。
2、遇到问题要学会在网上找答案。有些莫名其妙的问题书上很可能是没有答案的。而在网上你会有发现有很大的概率直接找到有人问过相关的问题,并且已经得到了解答。
3、要学会自己调试程序,自己找问题。这两周遇到过很多让人冒火的低级问题,在自己调试后感觉对好多概念理解得更深刻了…
4、最后,Deadline才是第一生产力啊!
写在前面
从快毕业的时候在图书馆里借来第一本有关python的书算起,接触python的时间也不过半年有余。时间真的很短,很难有什么经验之谈,自己至今也仍有许多需要学习的地方。不过对于怎么入门这一块,倒是颇有感触。在这里记录下来,也许能对后人有所帮助吧~
我是怎么开始了解python
快
毕业的时候,在中南的图书馆里瞎逛,偶然之间看到这么一本书,《可爱的python》。第一眼看上去,只是觉得书名还挺新颖的,反正也是闲着,抽出来看看
吧。“人生苦短,我用python”,这是我在封面上看到的第一句话,这感叹句实在太吸引眼球,以至于这么长时间后,我早忘了书中讲的什么内容。留在脑海
中的就只有封面上的这句话和作者的前言。
当时看完前言部分,我就感慨良多。一本好的编程入门书,不应该是一上来就告诉你怎么写Hello
World,给你介绍变量、函数、控制流
blablabla...,而是作者站在一个朋友的角度来和你谈心,告诉你他自己学习这门编程语言的经历,他自己所体会到的这门编程语言的魅力在哪里,有
哪些优点和不足之处,怎样能够更快更好地熟悉这门语言。这感觉就和当初学C++时候读的第一本书《Thinkng in
C++》一样。作者提到,由于python这门语言的特殊性,对它的学习并不必拘泥于传统的教科书式的学习方式,而是重点在“使用”中学习,其基本思想就
是用最短的时间掌握python最基础最核心的语法,然后在使用中碰到具体的问题时候,再去主动学习相关知识。这个观念对我的影响很深,可以说,回顾自己
的历程,基本就是按照这个原则来的,而且收获确实很多。
下面就结合我自己的学习经历,谈谈刚入门时候的基本原则。
你只需要掌握最基础的
刚开始学习python的时候,可能会查看许多书,这些书为了能够涵盖得尽量全面,往往会涉及语言方方面面的细节。但是,并不是每一个知识点都是你所需要的。
一开始你只需要掌握最基础的那部分知识。你可能会问,“我哪知道哪些是最基础的东西呢?”
我觉得,一个很简单的判断方法就是,拿起书都第一遍的时候,如果你能硬著头皮看下去并且能够理解里面所讲的内容,那很好,这就是最基础的。如果看了第一遍
后云里雾里,鬼才知道哪天会用得上这些东西。OK,专门找个小笔记本,记下这部分内容方便以后查阅,然后,跳过这部分。我在第一次看decorator装
饰器这个部分的时候实在看不下去,也不知道可能会有啥用,果断跳过,最近上高性能计算的课,学习下cuda的python接口时,里面都是装饰器修饰的函
数,才又好好学习来一下,结合来自己的实际问题,这样理解起来也就更深入。脚踏实地,出来混,迟早是要还的
记
住,前面你跳过的那些问题,迟早是会冒出来的。你自己得清醒地意识到,这种”刻舟求剑“式的做法,是存在一些弊端的,虽然大多数时候,这些弊端不过是自己
动手来实现一些别人已经实现来的东西,多花点时间精力罢了,但还有的时候,你可能会付出沉重的代价。类似的教训实在太多,比如看书的时候觉得
itertools这个包没有太大用就跳过了,后来有一天要实现个排列组合的算法时花了很长时间来实现,结果偶然一天看到这货居然内置在
iterrools里了;还有迭代器和生成器那部分,一开始以为自己可能用不到,后来要对一堆很大的文本做分析时候才发现内存不够了......所以说,
出来混,迟早是要还的,那些跳过了东西,迟早某一天要出来坑你一把。那肿么办咧,”跳还是不跳“,这是个问题,个人觉得,刚入门的时候,还是能跳就跳吧。
等自己对这门语言产生兴趣了,再来深入了解其语言的细节,也不算太晚。多读书,都好书
关于python的书虽不如C++,Java之类的那么多,但好书却不少了,这半年看了有十多本书了吧,整体感觉质量都挺不错。以下按照由浅入深的顺序来推荐给大家。
- 相信我,你看的第一份文档,应该是The Python Tutorial。什么?英语的看不懂!我去,你都还没开始看!!!
看
完上面的教程后,你可能会有种意犹未尽的感觉,难道,只需要这么点知识我就算入门了吗?如果你看完毫无压力,我只能说真的,这样就算入门。不过除此之外还
有另外一些讲解python基础书,也值得一看。你应该把大多数时间花在上面这份tutorial上,下面(1)中基础点的书应该是当作补充。看这几本书
的时候,牢记上面的两条原则!- 基础点的:A Byte of Python, learn python the hard way
- 稍稍进阶点的:dive into python 3,
- 需要当工具书一样看的:The Python Standard Library by Example
- 骨灰级的:Python Cookbook, 3rd Edition
(我是不会告诉你上面的这些书大多都有中文版的:~)
好用才是王道
看完上面这些书,你应该对python的基本语法特性,内部的标准库有了很深的了解。但是,我最想说的是,并不一定要等的你把这些书都读完了才开始做些
事,(事实上,读完那份tutorial你就可以动手做很多事了)。你应该很清楚的知道自己要用python来做什么!!!想当初大一学c语言时候,学了
也不知道为什么而学,所以啊,最后学完了那些语法知识后全都丢到一边,我那时候哪还知道c可以用来干那么多事。就我自己而言,学习python的目的是为
了在一定程度上代替matlab作为科学计算工具,利用其丰富的包来实现许多功能,另外,用python写的代码可读性很高,不管是自己写还是读别人的代
码,都是一种享受。
我想,你也一定有自己使用python目的,比如想用python爬网络上的资源,比如要用python建个网站,又或者是要和服务器上的后台打交
道...你总可以找到自己要学习的那个部分,记住,把重点花在这里!。然后,等你对python有一些感性认识了,某一天自然会想起来要了解下
python的底层是怎么实现的,为什么这样做比那样做更好等等问题。
编程语言说到底也只是工具罢了,工具固然是越好用越好,但更重要的是你要知道拿这些工具去解决什么样问题,以及怎样去解决!
中文课程 – 哈尔滨工业大学
讲的感觉还是比较系统的。而且有把知识点的练习做到很细致,所以可以一边学习,一边练习。
有很多的练习题,感觉不错。
然后你就会因为各种功能需求去学习python的标准库和三方库,这个时候你会意识到《python标准库》的重要性。
现在简单的图像处理需求用PIL自写程序就能搞定,html分析用requests++beautifulsoap,爬虫学习第三方框架scrapy。 还有数据分析之类数学功底较差没有怎么接触。
學會使用python內建的help()函數,很有用...
Teach Yourself Programming in Ten Years
而且相比自己啃书,有个老师会比较容易坚持,每周十来个小时,看视频做点题,还有论坛可以吐槽,考试通过还给发个鼓励性质的证明,who could ask for more?
任文龙,学过设计,做过前端
后来有次要压缩 JS、CSS,本地脚本调用 GAE 的服务,示例代码是 python 的,我把每次只能压一个文件的脚本改成了能批量压缩的。这样稍微熟悉了 python 的语法。
后来因为要每天为一个软件更新大量壁纸,就用 python 写了个抓取壁纸的小爬虫,使用 beautifulsoup 解析 html,调用 wget 下载壁纸。
后来就看了《python简明教程》,不过还停留在写小脚本的水平上,因为后来没用过。
因为启动新项目的需要,首先是从django开始学习的,我从官方的文档里学会了配置django环境以及创建了第一个django实例。两天后依葫芦画瓢做了一个小型的blog并且架设到了公网上还作为自己的新个人blog用了几天。
在这个时候,我甚至还没搞清楚python的列表和字典......
后来因为这次短暂的研究过程还算顺利,也对python产生了兴趣,才开始系统性的学习python。我记得是从 《Dive Into Python》开始的吧,随后同事买了一本《python核心编程》和一个关于django的书。基本上伴随着我们的开发过程了。
再后来就是在工作中因为某些需求需要查阅文档论证正确性时觉得麻烦,就直接去读python和django的源码,发现很多黑科技黑魔法,然后用在项目当中,并且一些经验一直沿用至今。
平
时我自己也会用python干一些短平快的事情,例如定期去爬一些网站的资料,给朋友做的淘宝营销数据分析,自己没事做了一个android下遥控PC的
播放器,其中PC端就是用python写的,学python3,4年以来写了很多很多的小脚本。有些脚本是写完用过一次就扔,有一些脚本被直接应用到了系
统中,并且一直工作的很好,最后变成了项目的一部分。例如最近我还在用python写一个类似于多线程游戏外挂的玩意,用来对游戏客户端进行并发高仿真度
模拟测试,这个脚本最后可能也会被纳入到项目中,作为测试代码的组成部分。
最后我的感觉就是,你开始会很轻易的爱上这门语言,在这之后,恭喜你,你入坑了,当你再切换到其他语言平台上工作时,有时候你会因为某些语言不许你偷懒而抓狂的。
《head first python》这本书是基于python3.x,是带领我开始踏进python大门的书籍,我每天晚上临睡前就抱着Macbook一边看书一边键入书本出现的代码,对python的语法有了初步的印象和概念。
《python基础教程(第2版)》主要还是基于python2.5,但是我目前看到的知识也挺受用,主要体现于对python的基础概念。
《python学习手册(第4版)》,这本书涵盖python2.6和3.0,它随时告诉你某些函数或者语法在两个版本python有何区别,我对它的喜欢程度高于《python基础教程》。
因
为我想直接学习python3,《head first
python》是基于3来教学,并且它的教学方式是有趣的。事实上后两本书是最初购买,一个多月后还是觉得看起来很枯燥,知识点不能保存于记忆中,自己对
python的概念和语法模糊,后来在书店看到《head first python》,稍稍读了几页,决定购入,才是真正入门。
我个人
认为如果没接触过python,直接学习python3,即使目前很多的开源程序或者生产平台都是基于2.x,但是大家都也在为升级到python3而努
力在改变,(django 1.5 has full python3 support) 并且python3的确更好。
附上枕边书图片一张:
http://t3.qpic.cn/mblogpic/0e3fa44aaa8a734fbd72/460
推荐这两本书
Learn Python The Hard Way
Dive Into Python
如果你偶尔会自己架几个网站,需要做一些运维的工作,那么可以看看这本书
Python for Unix and Linux System Administration - O'Reilly Media
如果你已经工作,或是编程经验很丰富,那么直接读源码吧。
facebook/tornado 路 GitHub
scrapy/scrapy 路 GitHub
...
LilHayah,专业搜东西
赞同
第一次作业deadline前边做边搜怎么Python的语法,
得写function,该怎么define,格式是什么,去查一下,哦,这样。
得写个loop,什么格式,哦,这样。
得用数列,咦, python有这个list,挺自由的,恩,就用这个。(后来根据作业要求也用numpy array)
怎么car第一个, 怎么去从list里面筛东西,查一下
……
……
遇到问题,查一下,亲自上手
……
于是第一次作业写完了,看着还不错,compile一下,有错?!不会吧,然后把错误信息一搜,哦,原来python靠空格来分scope,一定要四个空格,不能是tab,我sublime默认Enter是缩进tab,把tab都替换为四个空格后,运行成功。
于是一晚上速成Python。
之后再写几次作业,Project,写得也就熟练起来了。
中
间,遇到需要解决的东西,Google之,比如我需要扒一个网站很多页的数据,怎么整呢,搜一下,找到BeautifulSoup,英文中文教程都有,很
多还很详细一步步的,然后自己上手找猫画虎写,根据自己的需求,所要扒的网站的格式什么的,动动脑,该怎么写,试一试,哪怕出错呢,这样不断摸索,按自己
需求研究着解决办法,你的Python水平也在慢慢地提高中。
其实最重要的是工作中或者自己给自己找压力:
1 比如我第一个python工作(当时还是运维,会bash和ruby)就是写一个操作mongodb集群的管理shell
2
后来换工作入职第一件事就是写一个linux命令行下的多线程聊天工具,还淘了本绝版的《python网络编程基础》当然你可以继续延伸,例如加入多播,
提供shell命令支持查询历史记录,新上线好友请求聊天的消息通知和同意/拒绝,查询在线ip,拉组群聊,传送文件等等
3 再后来开始做前端(公司前端同事不给力,实在等不起,闲着也是闲着),第一个项目是用tornado‘堆‘出来的,反而到现在我觉得这是最好的学习web框架的方式,等我做django,flask的时候其实道理都是相同的,只是语法不同,调用方式不同
东西写多了,问题遇见多了之后,恭喜你算是入门了
http://wiki.pychina.org/hd/MinimalistPyStart.html
关键是开始动手, 不写代码,永远无法进入 Pythonic 世界的 ;-)
王滨,Python, http://thbattle.net
赞同
然后不停的用Python写代码,一边写,一边熟悉。
写的多了,肯定相关的文章也会看很多。
很多高阶的feature,要知道有那么个东西,然后有一天就会用到的。
过一阵子以后,你就会发现已经很熟练了。
PS:
我发现对我来说,具体的东西比抽象的东西容易理解的多。
什么地方看不懂的话,去看小例子,自己动手写写,再回头看抽象的东西。
黄志聪,服务端开发工程师
语法、原理都讲得很到位,一些常见问题、语言陷阱也都讲到了。不过代码示例有点少,可以自己写些小工具之类的,一方面可以熟悉python,另一方面也方便日常工作。
因为主要是想用作web开发,所以啃完书后就开始看 Tornado http://tornadoweb.org。开源框架,而且官方文档做得不错,还有一些Tornado的开源项目 http://www.zhihu.com/question/19707966 依样画葫芦,学习别人代码风格和思路。再自己做两个站练练手。基本算入门了。
寒 风,终于发现自己越来越傻逼了~~~
JAVA、PHP 是肯定不要的了,无他,厌之。
当时 ROR 是被热捧的,但是看了下语法,看到 begin...end 后果断弃之。
后来看了下 douban 的各种路边社报导,感觉 Python 可以看看。
看了下语法,对缩进分块感觉很新鲜也喜欢,代码干净呀(起码个人是这么认为),于是找了本入门教程开始学。
很多人都喜欢的一本教程叫《可爱的Python》,对,是的,就它,寓教于乐呀,所以哥就利用每天中午休息时间的一小部分花了几个月时间把《Python核心编程(中文第二版)》给大概啃了一遍(神马?不是《可》?当不是,我只是推荐你关注下,确实是很好玩的书。)。
自学最痛苦的就是坚持了。
期间曾经因为项目忙导致搁置了一段时间,第二次读的时候,赶脚有点不一样了。
可以不归类不搞对象的世界真是自在呀。
现在还是用 .NET,用 C#。
以上。
SONG Kevin,不要只点感谢不点赞,谢谢
自己是C++码农,看了一个周末跟着例子做做就觉得上手了
接下来就是网上查文档什么的了
不过离精通还是有点距离
zhijun liu,开发者
了解一门不同于Java的编程语言能帮助你更深入的了解Java
如果说精通Java缺只懂Java是会被人笑话的
不过真正促使我学Python是的原因是在某处看到扎克伯格做CEO的时候还会每年学习一门新的编程语言。我是怎么自学的呢?
- 去豆瓣搜了一下“Python”,然后Google搜了一下排在第一位的那本书(具体是哪书不重要)
- 找到那本电子书,从了解语言特性、基础语法、流程控制、基本数据结构到常用API大概花了一周的时间断断续续学习完了。
- 如果你还继续坚持这样子学下去,那我佩服你,我没有啃书了,开始写些小玩具,还记得起的有:
- 自动登录网站的脚本
- 利用微博API发送微博的小程序
- 某网站内容有更新时自动发送邮件
- 后来就写了一个稍微完成的小程序 http://162.243.150.120/
- 再后来用捣鼓一个博客:FooFish的自话自说
- 再后来就从某公司离职找了一份Python相关的工作
一路走来也走了不少弯路,但这是成长的过程,倘若我再来学一遍Python的话,我会这样:
- 不带功利心学习,如果学XX是为了找份XX的工作,压力大就不好玩了。最好是做好当前工作的前提下去学习你的新技能。
- 看廖雪峰的Python教程 - 廖雪峰的官方网站,可以让你了解Python的大部分内容了。
- 关注一些博客和论坛,不要加QQ群。
- 用Django或其他Python web框架做个小网站出来。
- 发挥你的想象,Python能做的事情很多
-codecademy个人认为是非常好的学习在线编程语言网站。注重代码规范,会经常提示你注意很多细节问题。有很多例子,虽然不难,但是他们会将其拆
分多个模块,引导你去一步步完成,他们这种思维方式在国内的书籍中很少见,反正我是受益匪浅。
- 看看简明 Python 教程,熟悉语法。
- 定一个自己喜欢的方向,寻找相关框架/工具继续学习,比如我是网络游戏服务器,就找到了Twisted(以及后来的Gevent)。
- 加入CPyUG Google Groups,时刻了解最新消息。
- 从最简单的功能开始,实际动手写。
因为工作用到,游戏中很多功能是用python实现的,经常手动去改一些参数。后来因为一个需求程序那边很忙顾不上,就只有自己动手了。
最先的工作是搭建编译环境,可以参考这里Python安装及编辑器UliPad安装。我强烈推荐使用国人@李迎辉 也就是limodou大神的Ulipad,我现在工作都用它,十分的简单好用,如果懒得配置,直接下载exe安装版的,下载地址:Downloads -
ulipad -
python editor based on wxPython,当时第一次搞,大概耗费了上午2小时,然后 print "hello world" 编译通过
下午找了份《简明 Python 教程》,看了整整一下午,算是入门,其中里面每个例子自己手动写一下,如果不看类、对象的内容,发现还是挺简单的嘛。(本人大学计算机专业,有点编程基础)
第二天,找来一大堆例子,看别人的代码,这里推荐《python学习手册》,把前面几章的练习题做一下,尤其是字符转换、列表、字典相关的东西彻底搞懂,练习题都没问题,入门ok。
第
三天,看一些之前项目的代码,主要是看一下c++接口的调用,配合接口的文档,看起来很快,相关的一些东西,看完之后改一些内容,比如任务对话、NPC面
板,改完后能看到结果,弄懂整个脚本是如何实现的,这时候要请教一下程序,大概的流程(import、reload)搞懂,一个新脚本是如何加入到游戏服
务器的,如何更新到玩家界面的,差不多一天时间,这一天晚上我就加班开始写逻辑了,主要还是多尝试,多看别人的代码。
第四天,在各种逻辑错误之后,终于写出了一个能用的版本,加载到测试服务器,然后不断的测试、修改、测试、修改,下班前,搞定,拿给程序看,把一些容易被外挂利用的地方改进一下,收工。
第五天,测试通过,准备上线。
从
此以后,python的逻辑都不需要程序来写了,程序只需要帮我做接口就好了。后来利用python来分析服务器日志、帮助女朋友搜集论文数据、网络爬虫
来帮助收集竞争对手数据,反正遇到大量操作的东西就用python写程序搞定。后来干脆放弃EXECL做数据分析,直接用python来生成各种数据图表
了。作为一个策划,我感觉到能力大大的增加了。
写python真的是感觉心旷神怡的一件事情,希望题主也能快乐的学习和使用。
第一本书:啄木鸟上的《Python简明教程》
第二本书:啄木鸟上的《Dive Into Python中文版》
第三本书:在电子版上粗略地看了一遍《Learning Python》中文版第四版
第三本书2:在实际项目的开发过程中,开始细嚼慢咽《Learning Python》中文版第四版
---------------------------------------------------------------------
第一个实际生产项目:基于Django的WebApp
主要参考文档:The Django Book中文版和Django官方文档。
开发过程中,为了阅读Django.contrib官方应用的成熟源码,开始了上面说的细嚼慢咽。我觉得阅读成熟的源码是一个学习语言的好方法。
其实Python是个语言特性精致复杂的语言,第一本书简明教程的内容说容易上手,也容易误导人。
基础知识:Python基础教程(第2版)
进阶:Python核心编程
的,然后直接去开发网站练手去了,哪里不会再去Python的官网翻tutorial,比如PyMongo查询的结果是一个字典,但我不知道是神马呀,于
是就去Python的官网里边查dict的使用方式~ 相信我,项目驱动的学习方式更有效~
目前自己也是在学习python,前面大家的回答,已经特别细致了。作为一个零编程经验学习的人,我讲一下自己的经历和学习方法,给和我情况相同的人提供借鉴。
A 现在网上有着大量的学习资源,所以熟练使用网络搜索你需要的资源很管用。
找一个系统化的教程对我们这种新手相当相当重要,那些几天学会的都是有基础的,你就不要妄想了。
https://class.coursera.org/interactivepython-004
这个是一个完整的教程,有作业,项目和讨论区。除此之外,所有视频都有中文字幕,英文不好的同学可以多关注下。
课程优点主要在于趣味性,几个老师虽然年龄不小,却富有童心。项目是各种游戏,很有意思奥。
截止到此文发布,这课程进行到底三周。
跟课程学到底,你会发现基本知道怎么学了,不会连应该学什么内容都不清楚了。
另外,你也可以到网易公开课和果壳学院搜python ,资源相对比较优秀。
B 现实中,选一本python 的书籍,前面大家讲了很多,选简单入门的读。建议在A和B同时进行,书籍主要当做工具书用,快速地略读。说到这,顺便推荐《如何阅读一本书》,供以前没注意过读书方法的人用。
最后,希望你是有一定的学习欲望和坚持的,好好评估下自己真的需要学习这门语言吗,答案是肯定,那就祝你早日开始学习。
hard
way不是说很难,而是用一种类似强迫性质的语气让你完成一些stuff,刚开始学编程的话,想太多真的没用,按照大牛的方法来就行了,你管它循环为什么
没有大括号而用冒号呢?引用为什么不用include而用import呢?这种hard way能帮你排除很多编程新手容易问的没有意义的问题。
PS.可以求助程序猿蓝朋友
入门:
- 官方的文档(快速入门)应该0.5-1.5天
- the hard way 2-3天基本就入门了。
- 接下来就是找你感兴趣的方向,比如我是电子游戏的,就找公司项目里的开发游戏一些要快速实现原型的用python写一次;如果是网络方面的直接上flask, tornado看一下源码,写个小应用;运维方面的,就改改你以前的shell scripting,依此类推。
至此语言的部分就基本上算是ok了,接下来就是更高层的需求了。
Structure and Interpretation of Computer
Programs这两本书看完了你再来学python觉得就那么一回事, 看看语法了解一下库,然后就开始工作了。
不过要想写一个非常大而优秀的程序那就是软件工程的范畴了。 相信一些优秀的C programmer也能写出非常优秀的python程序。
与其在这里纠结这么学着一门语言,还不如思考一下你要解决什么问题, 有一些语言是为了解决特定问题而存在的。
这样的例子还是非常多: 七牛云存储的核心代码是使用Go语言完成的。我不是他们的员工,只是想表达一个观点, 解决一个问题要选择最合适的方法而不是死脑筋。
楼主应该C语言都还没有入门吧, 专心把一个东西学懂了在去干大事吧。
Sherlock Hao,怎么看都不像是和计算机行业搭边的人
赞同
======================
P.S. 后来接触了LISP,然后就没有然后了。
做完后,基本上Python就OK了。
因为爬虫会涉及很多东西:
比如多线程、网络操作、队列、日志、数据库、Python的各个内置类型等等。
之后看完了《Python学习手册》,了解了本质上的东西。
多时候学习会是一件自然而然,不学会死的事情。我大一学C++,那时候对编程一无所知,只是跟学科课程的路子,一步步了解计算机,编程主要解决的是课堂测
验和期末考试,我至今仍然记得编出汉若塔和离散数学算法的兴奋和成就感,大二学C#编了五子棋和制定旅游线路的程序,大三学的Java又编写了五子棋(siegfang/five_in_a_row · GitHub),这次智能一点,可以自己跟自己下棋。最考验编程能力的要数编译原理,我用Java编写了词法分析,用C++编写了语法分析。当上传到CSDN的代码被其它人下载后评论可以运行时,我发现自己为码农世界做了点贡献。
这些虽然是硬着头皮做下来的事,但这过程中却收获颇丰,无论是对算法,还是对编程语言。研一时我注意到Python,为什么呢?原因只有一个,经历大学四年的编程语言的洗礼,不想再为实现一个简单的文本算法写很多代码了。我学Python时,目标是为了文本挖掘,所以选《Python 2.6 Text Processing (豆瓣)》作为入门,看完之后,我借了本《Python学习手册(第4版) (豆瓣)》完成了自己第一篇论文的所有实验。这之后的编程实践里,我的所有Python编程知识就来自这本《Python学习手册》和Google。想继续进阶的话,可以选择《Python编程 第4版 影印版 上下册 (豆瓣)》。我还没细看。
这里要引起注意的是Python 2和3版本的分裂,在标准库和语法上都有一些区别,上述各书对于不同版本的Python的侧重不同,需要进行区分。虽然Python 3是大势所趋,但目前2仍然占有较大的份额,如何选择版本呢:
- 你周围所有的人都使用的版本;
- 没有任何负担,选择Python 3;
- 在编写的过程中,发现很多Python包没有支持Python 3,选择Python 2;
具体可以看官方文档python.org 的页面。编程实践中完成比完美更重要,因地制宜地选择能事半功倍的编程语言才是明智之举。
首
先,要先学习完这一领域内的最少一本”经典书“,作为下一步学习的先验知识。注意我这里的经典书是打了引号的,因为现在学习的方式有很多,并不仅仅局限于
看书了,你可以去大学蹭课,也可以看网上的公开课,或者看网友录制的质量比较高的视频,还可以找牛人教你等等。总之这一步是让你具有足够的先验知识。
其次,你可以自己找一到两个项目来做,如果没有项目可以自己假想一个,最好是能解决实际问题的。然后在做这个项目的过程中把上一步学到的那些偏理论的知识进行应用,同时你还会遇到一些之前没有学习到的知识,没有关系,这时候你可以利用网络或向身边的人请教来学习。
我认为这是比较好的学习方式,尽管慢一点,但是很有效。
再
说点与这个问题直接相关的,我本人学习Python是先选择性地读了《学习Python》中的部分章节,再自己假想了3个小项目(当然是比较简单的)来
做,也遇到了很多不懂知识,都是在网上边学边用的。记得其中有一个是给室友们做了一款游戏的辅助型外挂,把室友们爽坏了。
学习一门新语言就是相似的地方学改变,这个非常快。高级特性的地方需要多看多写多思考。
Python的学习看文档就可以了,顺便可以提升自己英语水平。最主要的是多写。
两年前从只知道Python这门语言的基础上直接开始做Python的项目
花了几个小时了解了一下Python是个什么东西,能干什么,特点和简明语法《简明Python教程》
后面事情就顺理成章一发不可收拾了:
Python的web项目:Tornado源码 bottle源码 Flask源码 Requests源码
Python标准库源码:SocketServer源码 urlLib源码等
使用NumPy 科学计算
使用PyQT GUI界面
读《Python源码剖析》
就酱紫。就现在了,现在在看《现代操作系统 第三版》
结论:学语言不要在意怎么学,我总结的是:
1:要知道你要用它做什么
2:了解他都能做什么
3:他到底适不适合用用他来做那个什么
4:3成立的话直接做就好了
5:持续学习,前端,数据库 操作系统等
6:跟Python说:我们结婚吧
------------
另外追加:一门语言学习的重点是你要用它做什么,比如Python,它的应用方面非常广我总结下来可以为:
1:Web 比如豆瓣
2:元计算领域 比如OpenStack
3:运维 太多了
4:PyGame 这个一般吧
5:胶合 Lua之前最成功的语言
6:小工具 这个非常好用
7:科学计算,现实模拟 有比拟Matlab的实现
关于更多你可以看这个Full Stack Python
等到学习的资料,上面提供的已经很全了,这里就不再赘述,唯一补充的是:
如果你要是为了学习而学习,或者是人云亦云,更或者是“嘿,这东西听说牛,占个坑先”,我劝你,没必要只下苦心不做项目的所谓学习,关注与了解就行了。
匿名用户
赞同
焦傲,IT开发,java,php,c#,web产品
python的好处非常多,不管是几乎无限多成熟的第三方包,还是自身面向对象的概念,这就不一一列举了。说到python,不得不说一下django框架。这个框架对我的影响很大。
可惜,在国内,python还并不是一个热门的语言。可惜,可惜……
Qun Wang,Software Developer
shell,perl等脚本语言,再加上对面向对象的了解,学习起来还是很容易的。当然对于任何一门语言学习起来并不难,只是用起来需要时间积累和沉淀而
已。因为任何一门好的语言在语法上都比较直观容易理解,但如何应用好以及怎样应用到它的各种丰富的类库来编写高质量或高效率的成品来,就不是一蹴而就的
了。
关丹辉,For Data Science: http://www.datakit.cn
要性,所以自学一门语言,选择了python。之前,只有matlab编程经验,本科学了点C++。开始的时候,也是找了本电子书学习,但是深感头疼,因
为什么python基础啊什么教程,最后都会涉及网络啊、系统啊,我就不懂了。纯粹是为了数据分析,了解计算机科学,我买了本书《Python入门经典:
以解决计算问题为导向的Python编程实践 》。然后配合MIT的公开课 麻省理工学院公开课:计算机科学及编程导论 非常基础的入门,介绍了编程思想和科学计算。后来,就是多练习。我基本上是零基础学习,
我学习的之前对冒泡排序,折半搜索等等基本都不懂 。一般有经验的人,直接一个多小时就会了。
一个月前有个日志数据分析与绘图的需求,了解到python比较合适处理文本信息,于是就做了。python大概04年就知道有它,但是为人太懒,直到项目需要才直接用它,学习的过程就是实现的过程,很有劲
zergor,那个啥...
本人计算机毕业的,结果现在在制造行业搞电气,因为项目需要开发一个软件就选了http://VB.NET。之前从来没学过,一边百度一边搞,最终还是弄出来了,所以在实践中学习最快(当然,前提是你至少有点编程基础,熟悉基本语法)
李成冀,控四夷而制天下!
shonenada,无知的学生
1. 关于社区文化。Python 国内的社区有:
a. Python 的邮件列表:PythonCn -
cpyug -
Index of python-cn mailing list announce!
b. Python-China: Python China
2. 任何语言都有自己的语言风格,Python 也不例外。Python 自己的语言风格可以参考 PEP8:
PEP 8 -- Style Guide for Python Code
3. 优雅的 Python codes——Pythonic:
http://chrisarndt.de/talks/rupy/2008/output/slides.html
Pythonic // Speaker Deck
4. 打包:打包 Python 类库
匿名用户
2 学习dive into python
3 python核心编程和python的官方帮助文档,
看python的官方帮助文档可以只看例子,动手联系,在解释器上
Binshuo Hu,Coding for fun(饭)
卢政,写字人
这
个初学教程的作者假定你是对编程毫无概念的新手,所以一些艰深复杂的术语,作者都用很简单的例子来说明。我觉得对自己比较有价值的是每节课后面的
drill,让学习者自己去完成一些练习,包括复习本课内容,以及引导初学者自己学会上网找资料。最后几节包括一个项目骨架的搭建和web.py的介绍对
我这种没有全局概念的编程新手都很有启发。
在学完这个之后,建议在去看看,Dive into python。有英文也有中文的,中文的翻译得也很好,网页版、PDF格式的都有,还附有源代码。可以自行上网搜索。Dive into python 的内容更详实一些。
此外,可以在具体的编程活动中多用python来熟练语言的运用。
匿名用户
好个飞飞,软件工程
08年玩手机,偶然接触到了Python for Symbian... (PS:就在诺基亚手机上写软件...)...
那时候还只是个高中生,编程真心零基础,没兴趣去看专门的Python书籍,就照这着PyS60论坛大神的傻瓜教程开始的..
Hello World?零基础的小白不懂是Hello World。。
我的第一段代码如下:
import appuifw
appuifw.note(u"好个飞飞","info")
没错... 多年后我回忆,第一句居然不是print 'Hello World!'
--------------------------------------
第一个软件:
既然学了,当然就想写个软件(想要成就感...),但是零基础的小白能写什么?
- 计算器
- 体重测试
这两个东西只需要掌握if else和四则运算就能写的出来.. 具体的实现则需要动脑多想(编程的乐趣所在...)
--------------------------------------
我当时学了Python我拿它做了些什么:
- 刷网页游戏
- 刷空间
- 刷论坛
这也是Python最基础的用法之一,爬网页然后模拟请求刷刷刷刷.... (学生时代就那点需求,我是挂B我自豪..)
--------------------------------------
故事的中段:
故事的开头决定了结尾。。后期就继续往下点技能树,当了一名苦逼程序员..
后来学的都是Java(我现在是Android程序员...),Python就甩一边了...
再后来我又重拾了Python,为什么呢?因为Java在做一些小事情的显得有点啰嗦。。。写Python脚本当然是轻便的选择,比如:
- 本地大量文件批量操作
- 两个不同类型数据库,数据结构一结构不一样的情况下迁移一些数据
再后来,学习了OpenERP(现在改名叫odoo了,很出名的Python开源项目)... 当然学这玩意的目的不是做ERP。而是它架构特别.. 模块化开发,不用写数据库不用写html。。。果断收入后宫。。
- 在每台电脑上跑个OE,利用的它的定时任务,做一些事情,比如两台Mac一些配置(比如SublimeText的配置)的自动同步(用git).. 然后用它的视图(网页)显示同步时间、同步信息等等...
- 爬虫下来的数据保存、显示、表报分析... 不多说,三个方面都可以省代码...(真相就只有一个。。省代码...)
--------------------------------------
结尾
怎么点技能树最好跟这自己的兴趣和实际使用需求结合,如果你不知道从哪里开始,那你就应该好好反思一下自己学习编程想干些什么..
层主以前对象棋很感兴趣,一直想学着写象棋软件来着,最近在GitHub找到一个项目:
https://github.com/walker8088/ChessQ
欢迎加入一起完善这个小小的玩具~
so.. 我又把PyQt学习了下,准备展开一番研究...
桂琦琦,(此处省略25字)狗……
祭出我花几天整理的学(dai)习(xue)笔(lie)记(biao)
Note/Python.md at master · Damnever/Note · GitHub
看了The Python Challenge做了几题觉得不错,不懂就搜一下,是个好网站
fastzhong,软件艺术工作者
王鑫,不像程序员的程序猿
反正都是看书,既然在用电脑,其实我用电脑看的:Python教程 - 廖雪峰的官方网站
至于视频,我看的是麦子学院这套:Python视频教程_Python开发实战视频
正式开始学习之前,先找个帖子搭建Python开发环境:Python开发环境搭建(Linux版)
我找到的一个稍微好的Python论坛:www。pythontab。com、Python开发 - 麦子学院官方论坛
遇到疑问了,知乎也有一些回答可以搜索,Python吧也不错(多是小白提问,偶尔大神会答答,看这些回答能够帮助初学者),有其他好的Python论坛,还请告诉一声。
聂耳朵,已然不是文艺女青年。
全栈工程师,独立iOS开发者,精通Python / Java / JavaScript / Node / Objective-C / Scheme等。
你可以看他的视频,边学边练!
Python入门丨章节
请加上Python的其他能力:PySerial/PyPallel/PyUSB,嵌入式Python:PyMite/MicroPython,以及GUI开发的wxPython。
最近股票火热,想利用Python爬虫去做一些市场套利的提醒器。比如分级基金套利,现货期货套利等,ETF套利。
呆胶布,rookie码农,吉他、健身、动漫爱好者
不了解。就随便找了个W3Cschool上面的教程照着写一遍下来基本可以开始写程序了。第二周开始接手服务器代码。其实都是C系的语言,有c或c++的
基础的话学python很快。语法的方面其实并不是首要的,思路有了,语法就是随时google的事儿了。
入门之后就可以开始看一些推荐教程了解细节了。
再之后就是慢慢积累了。
有点详见恨晚的感觉
Learn Python The Hard Way 是你唯一的、最终的、史诗级的选择。它也许不能和 _why 的 why's (poignant) Guide to Ruby 重口味相提并论,但是作为不说废话、以练习为导向的教材,它是少林长拳一般的存在。
Learn Python The Hard Way, 3rd Edition
Update:
此外,作为做练习间隙的调剂,请下载
- Monty Python and the Holy Grail ( Monty Python and the Holy Grail (1975) )
- Monty Python's The Meaning of Life ( The Meaning of Life (1983) )
- Life of Brian ( Life of Brian (1979) )
并正襟危坐,反复观看。若不如此,则效果同窥看少林门径而不读《法华经》,将来的下场,就是被扫地僧说一个笑话,你听不懂。
《简明PYTHON教程》http://linux.chinaitlab.com/manual/Python_chinese/
《与孩子一起学编程》http://book.douban.com/subject/5338024/
实验:
《Google's Python Class》 http://code.google.com/intl/zh-CN/edu/languages/google-python-class/
《Python Cookbook》
《Learn Python The Hard Way》http://learnpythonthehardway.org/index
有问题查文档:http://docs.python.org/release/2.7.1/
千万别看:
《可爱的python》和《Dive into Python》可能不符合我的学习方法
李迎辉,Python爱好者,ulipad/uliweb作者
还有就是Python自带的《Python Tutorial》,长期由刘鑫义务翻译,也是非常不错的入门。
再有就是看Python自带的库说明手册。
我推荐完全没有编程基础的新手先看《head first python》或者《与孩子一起学编程》,这类书其实是借 python 来讲编程入门。
如果有一点点编程基础,而想学 python,建议《简明Python教程》或《Dive into Python》,这两个都有在线中文版本:
简明 Python 教程
Dive Into Python
最后是私货:推荐我自己写的专门面向零基础新手的 python 教程:Crossin的编程教室
或者加微信公众号:crossincode (Crossin的编程教室)
视野不仅仅是关于python这个语言,还包括了数据结构和算法,软件工程这些方面。能让新手对计算机科学能有高于编程语言的认识。
Rollen Holt,无她,唯手熟尔
《python简明教程》也不差
《深入学习.Python程序开发》
《Python高级编程》
《Python编程金典》
《Python核心编程(第二版)》
《python cookbook》
《python源码剖析》
《Python标准库》
学到最后,自然就是官方文档了,呵呵。
入门可以先过一遍《简明python教程》,目的是有一个直观认识,
然后可以看《python基础教程》(第二版),了解语法,控制结构等。
最后看一下《dive into python》写一些实例。。
平时可以参考官方文档
秒杀你们提到的所有入门书籍。(抱歉,我用了粗体)
个人感觉编排得不错,重点也很明确,又不失简约,每个小的章节都配一两个例子,读完的话,你会对python有一个大概的理解,如果是学习过其它语言编程
或者是编程思想本身就很好的话,读完它,完全可以看懂其它的人写的代码结构并做细节上的修改,辅以python系统的帮助,自己写一些实用的程序应该也能
做到了。
法学python》(英文版的貌似是 learning python the hard way)这是我 读过最好的编程入门书,体验式的教
学,直接看在线版的就好。 如果有其他语言的编程经验,建议读 《python基础教程(第二版)》,讲得比 较宽,后面10章有实例项目做。
也可以读完笨办法学python以后再读 一下基础教程 ,了解python图形编程 和网络编程的知识,做下后头的实例 项目。
Python
for Software Design: How to Think like a Computer Scientist, by Allen
B. Downey is an excellent intro. to programming and the Python
Programming Language. There is a free edition, called How to Think like a Computer Scientist, which can be found here: http://greenteapress.com/thinkpython/thinkCSpy/
Python Cookbook(第2版)中文版.pdf
Python编程金典.pdf
Python高级编程.pdf
Python标准库中文版.pdf
Python源码剖析
Dive into Python.pdf
[Python学习手册(第4版)].(Learning.Python.4th.Edition).Mark.Lutz.文字版.pdf
python_cookbook_3rd_edition.pdf
Python.Testing.Cookbook(第1版).pdf
Python核心编程(第三版) 英文版.pdf
The Practice of Computing Using Python (2nd Ed).pdf
Learning Python (中).pdf
A Byte of Python3(中文版).pdf带源代码.rar
http://filemarkets.com/fs/0b8l0u1ees5cbo4rpio0/
Building.Machine.Learning.Systems.with.Python-282013.7-29-5D.Willi.Richert.文字版.pdf
《Dive Into Python 3中文版》 Mark Pilgrim着.pdf
http://filemarkets.com/fs/fblu8escborp0io4fb62/
AWP.Learn.Python.the.Hard.Way.3rd.Edition.Oct.2013.pdf
Python标准库示例.epub
[Python入门指南].(Python.Tutorial).Guido.Van.Rossum.文字版.pdf
Head+First+Python(中文版).pdf
龙成亮,专注web.各种实验的代步工具,拒绝matlab.
深层次直接看spec是最好的,书目中的有些特性在新版本的python中会有所变化,而且,python是自文档化语言,dir及help工具已经非常实用了,自带的chm文档也方便函数和模块的检索.
张凯,CodeMonkey
除了实实在在的书籍,我觉得Google Python Class http://code.google.com/edu/languages/google-python-class/
也非常不错,入门课程通俗易懂,而配套的练习又非常有趣,强烈推荐
Bryan Liu,IT人
赞同
另外在挑书的时候尽量和自己使用的python版本一致,不然。。有时候挺郁闷的
loveisbug,小白
nanyo,PhD in Computer Science
Tutorial;进阶的,可以看下Programming Python (4th Edition),Core Python
Applications Programming (3rd Edition),两本书都有电子版。尤其推荐Core Python,配合Python
Manual看。
匿名用户
python入门推荐《计算机编程导论——python程序设计》
自己是花了两天时间读完,基本上可以入门,现在也推荐其他人作为入门书来读
15.8.11 补充:
上面这条是在一年多前发的,是我在知乎上的第一个回答,今天无意中又翻出来了,就做个补充
回答这个问题的时候,我才是python刚入门的阶段,到现在也在用Python开发(也用其他语言)
中间翻过的书挺多,借这个机会来做个总结
1.Python是典型的入门容易的语言,学习曲线比较平坦,可以快速入门,然后在实际项目中做两方面的扩展,一个是语言本身,一个是更多的库。对应的书籍就是三类,入门->语言->库
2.入门的书,上面这本《计算机编程导论——python程序设计》足够,可以快速入门,让自己能够开始实际操作,语言扩展推荐《Python基础教程 第二版》(修订版),第二版有两个版本,前一般被翻译毁了,修订版还不错,后面还有10个实际操作的项目,可以练手。
3.Python最大的特定就是丰富的库,这方面推荐《Python标准库》,虽然现在已经不是最新的库了,但是书中的库都是使用Python进行开发的基础库,用好它们足以应付绝大多数场景,不过这本书本身也比较厚,可以当工具查
4.其他的,语言上的技术点,有些新的和书上说的不是很明白的,我会去查官方doc www.python.org/doc/ 一些更新的库会到它们的官网上去查
任育成,旅行中的码农
它长这个样子:

第一章开始的时候会教你在各种不同的系统上安装Python,之后会以一种盖楼的形式教你python。什么是盖楼的方式呢,摩天大楼也是由基础的框架构成,配上砖瓦水泥。要盖起摩天大楼,当然先要了解构成它的那些基础部分啦。
从最基本的命令行输入输出,到基本数据结构,再到简单的算法,比较有用的库模块。都会以循序渐进的方式进行介绍。作者推崇实践教学,所有知识点都在
python的交互性解释器上进行展示,同时鼓励学生也这样做,毕竟只有自己真实的打出代码,才是自己的对吧。python的交互性解释器可看作一种编译
器,你写的代码会被编译并立即执行,如果有错误,bug信息也会显示在上面。非常方便。
介绍过最基本的数据结构以及流程结构后,会出现一些中等规模的项目,比如图形用户界面的编写啦,网络编程啦,数据库方面的信息等等。在书的最后会介绍10
个完整的Python项目,帮助读者真正使用python做出点东西,有点成就感之后学习才有动力嘛╮(╯▽╰)╭
另:作者真的是把读者当作完全没有编程经验的人来进行介绍的,而切我觉得文笔比较轻松,就酱*(^_^)/*
书的下载链接:http://club.topsage.com/thread-2278723-1-1.html
对于习惯了IDE编程的同学可能对于python的调试略微不爽,下面附上python调试技巧:https://www.ibm.com/developerworks/cn/linux/l-cn-pythondebugger/
plough,爱你所做之事
当然,入门,个人认为最好的是Learn Python The Hard Way
小灰笔记,汽车电子、MATLAB、Perl、Python、Linux…
《Python学习手册》,死贵的书,但是看完了似乎没什么卵用。我一直拿来跟学习Perl的时候做对比,学习Perl的时候一个星期就能够熟练写代码。这本书将近1000页,让我学了一个多月。看完了几本还处于Hello world、字符串的级别。
《简明Python教程》:网络版本,Free。大致了解了一下Python架构。
Pythoner:这个是网站,中谷教育的课程看完了。感觉效果相当于花一天的时间看了Perl小骆驼。
《Python核心编程》:终于开始入门,慢慢开始用到了工作中解决各种问题。
值得一说的是,第一本是Python 3.X,剩下的都是Python 2.X。感觉相当不兼容,干脆放弃3.X,先把2.X搞定,能够用了再转移3.X也不坏。毕竟,现在的3.X还不是很完善,2.X的库相对来说还是比较多的。
如果有朋友刚刚开始,建议直接从《Python核心编程》开始吧!
程龙,软件工程师
Python 的经典入门书籍的更多相关文章
- Python 的经典入门书籍有哪些?
是不是很多人跟你说,学Python开发就该老老实实地找书来看,再配合死命敲代码?电脑有了,软件也有了,心也收回来了?万事俱备,唯独只欠书籍?没找到到合适的书籍?可以看看这些. 1.Python基础教程 ...
- [转][RabbitMQ+Python入门经典] 兔子和兔子窝
[转][RabbitMQ+Python入门经典] 兔子和兔子窝 http://blog.csdn.net/linvo/article/details/5750987 RabbitMQ作为一个工业级的消 ...
- Python入门经典. 以解决计算问题为导向的Python编程实践
Python入门经典. 以解决计算问题为导向的Python编程实践(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1juLsew8UiOErRheQPOuTaw 提取 ...
- Python机器学习经典实例电子版和附带源码
Python机器学习经典实例电子版和附带源码 下载:https://pan.baidu.com/s/1m6ODNJk--PWHW8Vdsdjs-g 提取码:nyc0 分享更多python数据分析相关电 ...
- python入门经典_好资源送不停
Python入门经典(2K超清_送书) https://study.163.com/course/courseMain.htm?courseId=1006183019&share=2& ...
- python机器学习经典实例PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书
点击获取提取码:caji 在如今这个处处以数据驱动的世界中,机器学习正变得越来越大众化.它已经被广泛地应用于不同领域,如搜索引擎.机器人.无人驾驶汽车等.Python机器学习经典实例首先通过实用的案例 ...
- Python中经典排序方法
数据的排序是在解决实际问题时经常用到的步骤,也是数据结构的考点之一,下面介绍10种经典的排序方法. 首先,排序方法可以大体分为插入排序.选择排序.交换排序.归并排序和桶排序四大类,其中,插入排序又分为 ...
- 7本Python必读的入门书籍,你看过吗?(附福利)
Python入门书籍不用看太多,看一本就够.重要的是你要学习Python的哪个方向,或者说你对什么方向感兴趣,因为Python这门语言的应用领域比较广泛,比如说可以用来做数据分析.机器学习,也可以用来 ...
- [RabbitMQ+Python入门经典] 兔子和兔子窝
原文联接: http://blogs.digitar.com/jjww/2009/01/rabbits-and-warrens/ RabbitMQ作为一个工业级的消息队列服务器,在其客户端手册列表的P ...
随机推荐
- tcpdump命令介绍
命令格式为:tcpdump [-nn] [-i 接口] [-w 储存档名] [-c 次数] [-Ae] [-qX] [-r 文件] [所欲捕获的数据内容] 参数: -nn,直接以 IP 及 Port ...
- Eclipse 的 Java Web 项目环境搭建
从svn上拉取下来Eclipse的项目 IntelliJ IDEA自动识别到可编译的 src 类目录 Java Web 项目 html(一般命名为:WebRoot) 是整个项目输出的根目录. WEB- ...
- mysql官网下载驱动包
[转载]原文链接:http://blog.csdn.net/u010523770/article/details/52240946 驱动官网下载地址:http://dev.mysql.com/down ...
- HR招聘_(四)_招聘方法论(简历筛选)
.主动投递 筛选时需要看学历背景,公司平台,所在时间,岗位职责,项目经验几个部分,根据对岗位需求和企业文化选择合适的候选人. 筛选简历建议分岗位筛选,切记误操作或大意淘汰优秀候选人. .搜索下载 互联 ...
- Java 休眠(sleep)
sleep()使当前线程进入停滞状态(阻塞当前线程),让出CPU的使用.目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会. 你可以让程序休眠一毫秒的时间或者到您的计算 ...
- Leetcode705.Design HashSet设置哈希集合
不使用任何内建的哈希表库设计一个哈希集合 具体地说,你的设计应该包含以下的功能 add(value):向哈希集合中插入一个值. contains(value) :返回哈希集合中是否存在这个值. rem ...
- Python 模块chardet安装过程(windows环境)
最近需要一个txt文件的批量转码功能,在网上找到一段批量处理java源文件的py程序如下: #-*- coding: utf-8 -*- import codecs import os import ...
- docker无法删除镜像,Error: No such container,附docker常用命令
最近打算删除掉docker镜像但是发现有几个镜像就是删除不了,加了-f强制删除也不行,一直报Error: No such container的错误,最后终于找到了办法直接删除文件,步骤如下: 切换到r ...
- python 正确地初始化对象
- python 临时修改模块搜索路径