本文主要针对零基础想学习Python者.本文本文由@史江歌(shijiangge@gmail.comQQ:499065469)根据互联网资料收集整理而成,感谢互联网,感谢各位的分享。鸣谢!本文会不断更新.
一、学会使用搜索引擎,尤其是谷歌。推荐阅读文章
《如何用好Google搜索引擎?》知乎问答@崔凯
《十大高明的Google搜索技巧》By-雪影蓝风
《如何用好Google》By-李笑来
二、学会提问
推荐阅读《提问的智慧》By-啄木鸟社区
《提问的智慧》务必请读完!
三、书籍推荐
零基础
- python官方文档点击打开链接英语不好的,暂时就先别看了,以后一定肯定要加强英语学习哦;)。
- 推荐《How to think like a computer scientist》,对应中文版本“Python学习笔记–皮大庆”,非常适合零基础入门.
- 推荐[“python编程实践”](http://book.douban.com/subject/7059900/)
- 推荐《简明Python教程》
- 推荐《笨办法学 Python (Learn Python The Hard Way)》
有其他编程语言基础
- 推荐《Python基础教程》
- 推荐Python入门教程-By廖雪峰
- Tutorial – Learn Python in 10 minutes
进阶
- 推荐Requests 源码阅读
- 《Python进阶》(Intermediate Python 中文版)
更多书籍推荐
- 知乎问答:关于 Python 的经典入门书籍有哪些?
- V2EX问答:文科生想学Python
- Python快速教程
四、视频推荐
麻省理工公开课“计算机科学及编程导论”,该课程针对零基础者网易公开课那就是。
课程介绍这门课程适用于那些拥有很少或没有编程经验的学生,它致力于使学生理解计算机在解决问题中的作用,并且帮助学生不论其专业、使他们对于能够完成有用的小程序的目标充满信心.
五、学习方法
虽然我不是python高手,但我是零基础,之前会的都是软件ps,ppt之类。
如果目的是想成为程序员,参考教学大纲.
如果只是学程序,理解科技,解决工作问题,我的方式可以参考使用:
- (找到合适的入门书籍,大致读一次,循环啊判断啊,常用类啊,搞懂(太难的跳过)
- 做些简单习题,字符串比较,读取日期之类《python食谱》不错(太难太无趣的,再次跳过,保持兴趣是最重要的,不会的以后可以再学)
- 加入Python讨论群,态度友好笑眯眯(很重要,这样高手才会耐心纠正你错误常识)。很多小问题,纠结许久,对方一句话点播思路,真的节约你很多时间.耐心指教我的好人,超级超级多谢.
- 解决自己电脑问题.比如下载美剧,零散下载了2,4,5,8集,而美剧共12集,怎样找出漏下的那几集?然后问题分解,1个读取全部下载文件名,2个提取集的数字,3个数字排序和(1-12)对比,找出漏下的。
- 时刻记住目的,不是为了当程序员,是为了解决问题.
比如,想偷懒抓网页内容,用urllib不行,用请求也不行,才发现抓取内容涉及那么多方面(Cookie,Header,ssl,url,javascript等等),当然可以听人家劝,回去好好读书,从头读.
或者,不求效率,只求解决,用ie打开网页再另存为行不行?即已经渲染过全部结果了。
问题变成:1–打开指定的10个网页(一行代码就行)。更复杂的想保存呢?利用已经存在的包,比如PAM30(我的是Python3),直接打开ie,用函数out HTML另存为文本,再用搜索函数(str搜索也行,re正则也行)找到数据.简单吧?而且代码超级短.
- 保持兴趣,用最简单的方式解决问题,什么底层驱动,各种交换,留给大牛去写吧.我们利用已经有的包完成.
- 耐心读文档,并且练习快速读文档.拿到新包,找到自己所需要的函数,是需要快速读一次的.这个不难,读函数名,大概能猜到是干嘛的,然后看看返回值,能判断是不是自己需要的.
- 写帮助文件和学习笔记,并发布共享.教别人的时候,其实你已经自己再次思考一次了.
我觉得学程序就像学英文,把高频率的词(循环,判断,常用包,常用函数)搞懂,就能拼装成自己想要的软件.
然后http://stackoverflow.com和http://Google.com是很好用的.
然后,坚持下去.
一定要保持兴趣,太复杂的跳过,就像小学数学,小学英语,都是由简入深.
网络很平面,无数国际大牛著作好书,关于Python、算法,电脑,网络,或者程序员思路,或者商业思维(浪潮之巅是本好书)等等,还有国际名校的网络公开课(中英文字幕翻译完毕,观看不是难事),讲计算机,网络,安全,或者安卓系统,什么都有,只要能持续保持兴趣,一点点学习下去、不是难事.
所有天才程序员,都曾是儿童,回到儿童思维来理解和学习.觉得什么有趣,先学,不懂的,先放着,遇到问题再来学,效果更好.
唯一建议是,不要太贪心,耐心学好一门优雅的语言,再学其它.虽然Javascript做特效很炫,或提某问题时,有大牛建议,用Ruby来写更好之类,不要改方向。就像老笑话:“要学习递归,必须首先理解递归。”然后死循环一直下去.坚持学好一门语言,再研究其他.
即使一门语言,跟网络,数据库等等相关的部分,若都能学好,再学其他语言,是很快的事情.
另外就是,用学英文的耐心来学计算机,英文遇到不懂的词,抄下,查询.
Python里,看到http,查查定义,看到outHtml,查查定义,跟初学英语时候一样,不要直接猜意思,因为精确描述性定义,跟含糊自然语有区别的。而新人瞎猜,很容易错误理解,维基,谷歌很有用。
芝麻问答:如何学习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.谷歌如果发现教程不够全面,用搜索是否有对应的教学书籍可以看。示例学习完毕,开发一个玩具程序,用来检验自己是否需要用到的功能.开始学习python
我建议你学习的过程也按照上面来,首先过一遍Python官方文档:
http://docs.python.org/tutorial/index.html
然后做http://www.pythonchallenge.com/这个网站上面的题目
如果卡在某一关太久,可以看答案(Google Python质询回答),做完后看看别人的编码方式和自己有什么区别
小项目
做完一遍后,你会发现已经熟悉了基本的Python开发.然后做点小项目吧.这里是一些题目,挑感兴趣的去做
- 写一个简单的计算器/记账软件/扫雷游戏(用pyqt库做界面)
- 写一个聊天室网站(用Webpy框架,jQuery刷新新的回复)
- 写一个爬虫,获取豆瓣上面所有用户的地点,画地点分布的直方图(用lxml解析,保存数据到sqlite里面去,用matplotlib画图)
常见问题解答
问:遇到了问题,到哪里求助?
答:上http://groups.google.com/group/python-cn(需要翻墙)或者)http://stackoverflow.com提问就可以了
问:如何查找Python的某个功能?
答:看官方文档。http://docs.python.org/library/index.html
问:如何用Python完成一个任务(比如写网站)?
答:谷歌:python写网站,或者谷歌:python web开发
知乎问答:你是如何自学Python的?点击打开链接作者:@成增存
阶段一:前辈领进门。第一眼是一个前辈给我看了看Python的代码,因为自己最早学习的是Java语言,第一眼看到Python的时候,前辈说,“Python是面向对象的”,然后就打印了几句代码.可我怎么也看不出到底哪里是“面向对象”的.前辈说“在Python里,一切皆对象”,我才有点领悟的说道:“原来把什么看成对象,就是面向对象”,哈哈.
阶段二:开始看的是“潜入Python”、“倾倒Python”、“Python Doc”。因为有很多语言学习经历,很快就完成了初步语法和使用学习.太复杂的特性还是在使用中逐步掌握的.
阶段三:开始使用Python做自己的一些日常工作.比如python搜索文件,python批量处理等,使用最多的还是re模块和Socket相关模块。写了大量的例子,让自己对Python更加喜爱,也更加熟悉.此时翻阅最多的是“python医生”的指南。不管是语言参考、库参考、演示参考,都有大量可使用的内容,内容质量很高堪比jdk。
阶段四:生产上马。开始使用Django,长颈瓶,龙卷风开发一些Web应用,写一些日常使用的工具包等。逐步提升设计能力,和整体代码的管理能力.
阶段五:更合理的分配好C,JAVA,Python三门语言各自擅长的部分。把合适的语言用到合适的地方.尽管一门语言有时候可以搞定所有的,但用擅长的语言解决合适的问题才是效率最高的.这也是“python的大道至简”的理念带给我的帮助和认识.
PS:其中过程中主要的一些方法:
- 看书.学习的基础.
- 自己本地练习.编程还是要实践出真知.
- 资料查询.谷歌,Stackoverflow等多关注。
- 交流.各种论坛上的python群,论坛。最早去的CU、JavaEye、不过现在貌似去的少了。谷歌集团必须订阅.
学习+实践+总结,掌握语言的法宝.
六、就这么做吧
看了这么多资料了,还没动手敲代码?
好吧,最好一篇文章“我在学习编程中犯的两个最大错误“点击打开链接
就这么做吧。动手敲代码吧.
注:本文由@史江歌(shijiangge@gmail.com)根据互联网资料收集整理而成.
七、更新
Python技术博客、招聘、开源软件、Python中文网站导航
遇到python问题怎么样解决?python help dir stackoverflow docs google
在线视频教学(英文)codecademy
英文Python for beginners
英文我如何从零开始学习PythonWeb开发?(各种电子书推荐)点击打开链接
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 最佳实践指南 2018Python日常使用的最佳实践,高级Python开发者必知必会的知识
《码农周刊》干货精选(Python 篇)精选总结
Python 3 Module of the Weekpython标准库的使用
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