【MeiWei_81-优质适用文档】
如何自学Python(干货合集)
LearnPythonTheHardWay
http://
learnpythonthehardway.org
/book/
零编程基础学python,浅显易懂,操作性强。中文翻译版本: 笨办法学Python
http://
lpthw-cn.ducktypist.com
/en/latest/index.html
其实python非常适合初学者入门,上手很容易。 我就是完全通过网上资源学了python的。 最大的是3点经验:
1.找一本浅显易懂,例程比较好的教程,从头到尾看下去。不要看很多本,专注于一本。把里面的例程都手打一遍,搞懂为什么。
2.去找一个实际项目练手。我当时是因为要做一个网站,不得已要学python。这种条件下的效果比你平时学一门新语言要好很多。所以最好是要有真实的项目做。可以找几个同学一起做个网站之类。
3.最好能找到一个已经会python的人。问他一点学习规划的建议,然后在遇到卡壳的地方找他指点。这样会事半功倍 推荐几个网上的资源: 简明Python教程 与孩子一起学编程 HeadFirstPython中文版 笨办法学Python
Dive.Into.Python中文版(附课程源码) Python核心编程 深入理解Python Python标准库 Python编程指南 diango_book中文版 解压密码均为:crossin.me
http://
====================== 在线教程:
简明Python教程:简明Python教程 (较新版):AByteofPython DiveintoPython:DiveIntoPython 阶段一:前辈领进门。
第一眼是一个前辈给我看了看Python的代码,因为自己最早学习的是Java语言,第一眼看到Python的时候,前辈说,“Python是面向对象的”,然后就打印了几句代码。可我怎么也看不出到底哪里是“面向对象”的。前辈说“在Python里,一切皆对象”,我才有点领悟的说道:“原来把什么看成对象,就是面向对象”,哈哈。 阶段二:开始看的是《DiveintoPython》、《Leaningpython》、《PythonDoc》。
因为有很多语言学习经历,很快就完成了初步语法和使用学习。太复杂的特性还是在使用中逐步掌握的。 阶段三:开始使用Python做自己的一些日常工作。
比如Python搜索文件,Python批量处理等,使用最多的还是re模块和socket相关模块。写了大量的例子,让自己对Python更加喜爱,也更加熟悉。此时翻阅最多的是《PythonDoc》的指南。不管是语言参考、库参考、Demo参考,
【MeiWei_81-优质适用文档】
【MeiWei_81-优质适用文档】
都有大量可使用的内容,内容质量很高堪比JDK。 阶段四:生产上马。
开始使用Django,Flask,Tornado开发一些web应用,写一些日常使用的工具包等。逐步提升设计能力,和整体代码的管理能力。
阶段五:更合理的分配好C,Java,Python三门语言各自擅长的部分。
把合适的语言用到合适的地方。尽管一门语言有时候可以搞定所有的,但用擅长的语言解决合适的问题才是效率最高的。这也是“Python的大道至简”的理念带给我的帮助和认识。 PS:其中过程中主要的一些方法: 1、看书。学习的基础。
2、自己本地练习。编程还是要实践出真知。 3、资料查询。google,stackoverflow等多关注。
4、交流。各种论坛上的pythongroup,论坛。最早去的CU,JavaEye,不过现在貌似去的少了。googlegroup必须订阅。
学习+实践+总结,掌握语言的法宝。
学Python,看的第一篇文章来自42区,推荐大家看看网站开发 . 漫游指南。 多关注下牛人,多实践。 更新20KK-12-17
前段时间整理了一篇博客,搜集了学习Python入门、数据库和Web开发的一些资料,原文见
http://
dylanninin.com/blog/20KK
/11/23/python_resource.html
,这里摘抄一下。
入门和基础
Python有Python2.x和Python3.x之分,争论很多,见Python2orPython3。初学者不用考虑这个问题,可以从Python2.x入门,之后再讨论会多一些理性。 ? ? ? ? ? ? ? ? ? ?
洪强宁:Python于Web 2.0网站的应用:豆瓣网洪强宁在QCon北京20KK中的技术分享,若不能访问,请自备梯子;另外,豆瓣的阿北很值得关注。
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做下练习。
【MeiWei_81-优质适用文档】
【MeiWei_81-优质适用文档】
? ? ? ? ?
PEP249: DB API:数据库访问接口规范,当时还做了一份笔记。
SQLite:教程见SQLite Python Tutorial;若要深入了解,推荐The Definitive Guide to SQLite;看此书时,做了一些好句子、段落的摘要,见Sentences in SQLite 3。 MySQL:教程见Python MySQL Database Access。
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,提供了类似MongoShell的接口;2)
MongoEngine:APythonObject-Document-MapperforworkingwithMongoDB,即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相关的新闻和技术。NoSQLFan中,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的框架。一句话介绍
\forwhateverpurposewithabsolutelynorestrictions.\。接触的第一个Web框架,后来模仿MovableType,写了一个简单的博客,见Blog on Github,在线demoPastime Paradise;碰到的坑点是模板中嵌套Python代码一直有缩进问题。 ?
Flask:一句话介绍
\inja2templateengine.ItisBSDlicensed.Flaskiscalledamicroframeworkbecauseitkeepsthecoresimplebutextensible\。因为工作变动,练习过一段时间的Flask,以便熟悉开发的工具链;如果没有Rails,我想这才是自己首选的Web开发框架:simplebutextensibleandforfun。实战教程The Flask Mega-Tutorial。 ?
Tornado:来自FriendFeed的异步框架,FriendFeed被Facebook收购后开放了源代码,见Tornado on Github。一句话介绍
\。Tornado主要特点是non-blocking,如果你想开发real-time的Web应用,Tornado是一个不错的选择。
【MeiWei_81-优质适用文档】
【MeiWei_81-优质适用文档】
?
Django:一句话介绍
\\,接触不多,作为全栈式框架,听说它的组件都是MadeinDjango。更多资料见Django资料。
IDE
?
Vim+Python Mode。目前就用这个方案,很方便,直接引用同学的效果图。关于Vim资料和讨论,请移步Vim资料大全;关于Vim更多插件和演示,请移步k-vim on Github;关于Git,Github,请移步本站Free Blog with Github Pages。
社区
? ? ? ? ? ? ? ? ?
啄木鸟社区
42区:网站开发.漫游指南 Python on V2EX Python4cn 豆瓣Python小组 哲思社区
Python Weekly:每周更新,包括Python相关的文章、教程、演讲、书籍、项目、工作等。 Pycoder's Weekly:与PythonWeekly类似,两者可以互为补充,了解过去一周动态。
码农周刊:developerWorks出品的周刊,来自国人的分享。可以先看为什么要做《码农周刊》?;接着《码农周刊》用到的一些技术;再接着周刊回顾。这里不仅仅是Python。
我最先看的是《简明Python教程》来熟悉一下语法,自己敲了一下代码,发现python很容易上手,渐渐喜欢上它。接着买了一本《python基础教程》,跟着书中的例子深入学习。这本书讲得很详细,浅显易懂。
当开始熟悉python的时候,尝试自己写一些脚本或软件来干一些有趣的事情。后来图像处理课程作业我也用python来完成。
与此同时,我坚持写博客来记录一下自己的学习心得。
现在我开始学习用python的web应用。这才是python擅长的领域。它有很多好用的框架例如django,tornado等,可以轻松地做一个网站,用python做网站后端也是一个越来越流行的趋势。
学习python,最重要的是要写出pythonic的代码,这不是一朝一夕的事情。我喜欢python,就是因为它的简洁和强大。不要重复造轮子,学会优雅地使用python。Pythonic到底是什么玩意儿? 附我看过的觉得不错资料 PyCoder’sWeekly中文翻译 学好Python必读的几篇文章
也应该订阅一些python大牛的博客有哪些Python大牛的blog推荐? 和邮件列表groups.google.com/group
http://
/python-cn/topics
周刊
我是自学的Python。从对Python一无所知,到在博客上写Python相关的系列文章(Python快速教程),前后有将近三年的时间。期间有不少门槛,但也充满乐趣。乐趣是自学的最大动力。Python是一个容易编写,又功能强大的动态语言。使用Python,可以在短短几行内实现相当强大的功能。通过自己写一些小程序,迅速的看到效果,发现问题,这是学习Python最便利的地方。
在学习Python之前,可以了解一下Python的特点和设计理念(Python简史)。在设计之初,Python就试图在复杂、强大的C和方便、功能有限的bash之间,找到一个平衡点。Python的语法比较简单,用起来很方便,因此有些人把它当作脚本语言使用。但Python要比普通的脚本语言功能强大很多。通过良好的可拓展性,Python的功能相当全面,应用面很广:web服务器,网络爬虫,科学运算,机器学习,游戏开发……当然,天下没有免费的午餐,也没有完美的语言,
【MeiWei_81-优质适用文档】
【MeiWei_81-优质适用文档】
Python为了达到上述两点,有意的牺牲了Python的运行速度。如果你是在编写高业务量、运算量的程序,可能Python并不是最好的选择。 -----
Python的主体内容大致可以分为以下几个部分:
1. 面向过程。包括基本的表达式,if语句,循环,函数等。如果你有任何一个语言的基础,特别是C语言的基础,这
一部分就是分分钟了解下Python规定的事。如果你没有语言基础,建议从PythonProgramming为参考书。这本书是计算机导论性质的教材,不需要编程基础。
2. 面向对象,包括面向对象的基本概念,类,方法,属性,继承等。Python是面向对象的语言,“一切皆对象”。
面向对象是很难回避的。Python的面向对象机制是相对比较松散的,不像Java和C++那么严格。好处是容易学,容易维护,坏处是容易犯错。
3. 应用功能,包括IO,数据容器如表和词典,内置函数,模块,格式化字符串等。这些在其它语言中也经常出现,有
比较强的实用性。
4. 高级语法,上下文管理器,列表推导,函数式编程,装饰器,特殊方法等。这些语法并不是必须的,你可以用前面
比较基础的语法实现。学这些高级语法的主要原因是:它们太方便了。比如列表推导一行可以做到的事情,用循环结构要好几行才行。
学习Python主体最好的参考书是LearningPython,它非常全面,满满的都是干货。虽然很厚,读起来并不难读。另一个是参考官网的教程Python.org -----
Python号称“BatteryIncluded\Python功能全面的标准库。标准库提供了许多功能模块,每个模块是某一方面功能的接口,比如文件管理,操作系统互动,字符处理,网络接口,编码加密等等。
ThePythonStandardLibrary中,你可以看到标准库模块的列表。这里也是标准库最好的学习资料。如果想找书,我只看到过两本关于标准库的: PythonEssentialReference
ThePythonStandardLibrarybyExample
说实话,这两本都不算很好的标准库教材,而标准库的参考书也确实很难写。因为标准库只是调用功能的接口,最终实现的是Python和系统的互动。这需要很强的系统知识,比如文件系统知识,进程管理,http原理,socket编程,数据库原理……如果这些知识都已经准备充分,那么标准库学起来完全没有难度。然而,这些背景知识的学习并非一朝一夕的事情。
更深入的Python学习也是如此,需要大量的背景知识,而不是Python自身。如果你对Python的编译和运行机制感兴趣,你可以往Python底层这一深度挖。如果你对应用感兴趣,你可以多学习几个自己用的上的第三方包。学到这个时候,就是要自己探索的广阔空间了。 -----
基本上,学过主体内容之后,Python还是要靠做项目来练习。有不少小练习题类型的资料,比如PythonCookbook。但更好的方式是自己去想一些应用场景,用Python来解决。Python功能全面,所以不要担心自己想的问题Python解决不了(基本上Python解决不了的问题,别的语言也没戏)。比如我学习多线程的动力,就因为要并行的下载大量的文件。基本上一个项目下来,会用到Python好几块的内容,知识会特别巩固。
最后,和其它任何知识的学习一样,笔记和总结很重要。在看参考书和看网页时,可以做一些笔记。等到学了一段时间后,可以把笔记整理成更有条理的参考卡片(referencecard),或者写博客。这也是我写“Python快速教程”的主要原因。另外这个教程内容的顺序,也是我认为的比较合理的学习顺序,仅供参考。
【MeiWei_81-优质适用文档】