匿名用户

学会一门语言的捷径只有一个: Getting Started!¶ 起步阶段  任何一种编程语言都包含两个部分:硬知识和软知识,起步阶段的主要任务是掌握硬知识。°1 硬知识  “硬知识”指的是编程语言的语法、算法和数据结构、编程范式等,例如:变量和类型、循环语句、分支、函数、类。这部分知识也是具有普适性的,看上去是掌握了一种语法,实际是建立了一种思维。例如:让一个 Java 程序员去学习 Python,他可以很快的将 Java 中的学到的面向对象的知识 map 到 Python 中来,因此能够快速掌握 Python 中面向对象的特性。  如果你是刚开始学习编程的新手,一本可靠的语法书是非常重要的。它看上去可能非常枯燥乏味,但对于建立稳固的编程思维是必不可少。下面列出了一些适合初学者入门的教学材料:  1「笨方法学 Python」:http://learnpythonthehardway....  这本书在讲解 Python 的语法成分时,还附带大量可实践的例子,非常适合快速起步。  2「廖雪峰的 Python 2.7 教程」:Home - 廖雪峰的官方网站  Python 中文教程的翘楚,专为刚刚步入程序世界的小白打造。  ❖「The Hitchhiker’s Guide to Python!」:The Hitchhiker’s Guide to Python!  这本指南着重于 Python 的最佳实践,不管你是 Python 专家还是新手,都能获得极大的帮助。  3「Python 官方文档」:Our Documentation  实践中大部分问题,都可以在官方文档中找到答案。  4 辅助工具:Python Tutor  一个 Python 对象可视化的项目,用图形辅助你理解 Python 中的各种概念。Python 的哲学:  用一种方法,最好是只有一种方法来做一件事。  学习也是一样,虽然推荐了多种学习资料,但实际学习的时候,最好只选择其中的一个,坚持看完。  必要的时候,可能需要阅读讲解数据结构和算法的书,这些知识对于理解和使用 Python 中的对象模型有着很大的帮助。°2 软知识  “软知识”则是特定语言环境下的语法技巧、类库的使用、IDE的选择等等。这一部分,即使完全不了解不会使用,也不会妨碍你去编程,只不过写出的程序,看上去显得“傻”了些。  对这些知识的学习,取决于你尝试解决的问题的领域和深度。对初学者而言,起步阶段极易走火,或者在选择 Python 版本时徘徊不决,一会儿看 2.7 一会儿又转到 3.0,或者徜徉在类库的大海中无法自拔,Scrapy,Numpy,Django 什么都要试试,或者参与编辑器圣战、大括号缩进探究、操作系统辩论赛等无意义活动,或者整天跪舔语法糖,老想着怎么一行代码把所有的事情做完,或者去构想圣洁的性能安全通用性健壮性全部满分的解决方案。  很多“大牛”都会告诫初学者,用这个用那个,少走弯路,这样反而把初学者推向了真正的弯路。  还不如告诉初学者,学习本来就是个需要你去走弯路出 Bug,只能脚踏实地,没有奇迹只有狗屎的过程。  选择一个方向先走下去,哪怕脏丑差,走不动了再看看有没有更好的解决途径。  自己走了弯路,你才知道这么做的好处,才能理解为什么人们可以手写状态机去匹配却偏要发明正则表达式,为什么面向过程可以解决却偏要面向对象,为什么我可以操纵每一根指针却偏要自动管理内存,为什么我可以嵌套回调却偏要用 Promise...  更重要的时,你会明白,高层次的解决方法都是对低层次的封装,并不是任何情况下都是最有效最合适的。  技术涌进就像波浪一样,那些陈旧的封存已久的技术,消退了迟早还会涌回的。就像现在移动端应用、手游和 HTML5 的火热,某些方面不正在重演过去 PC 的那些历史么?  因此,不要担心自己走错路误了终身,坚持并保持进步才是正道。  起步阶段的核心任务是掌握硬知识,软知识做适当了解,有了稳固的根,粗壮的枝干,才能长出浓密的叶子,结出甜美的果实。¶ 发展阶段  完成了基础知识的学习,必定会感到一阵空虚,怀疑这些语法知识是不是真的有用。  没错,你的怀疑是非常正确的。要让 Python 发挥出它的价值,当然不能停留在语法层面。  发展阶段的核心任务,就是“跳出 Python,拥抱世界”。  在你面前会有多个分支:科学计算和数据分析、爬虫、Web 网站、游戏、命令行实用工具等等等等,这些都不是仅仅知道 Python 语法就能解决的问题。  拿爬虫举例,如果你对计算机网络,HTTP协议,HTML,文本编码,JSON一无所知,你能做好这部分的工作么?而你在起步阶段的基础知识也同样重要,如果你连循环递归怎么写都还要查文档,连 BFS 都不知道怎么实现,这就像工匠做石凳每次起锤都要思考锤子怎么使用一样,非常低效。  在这个阶段,不可避免要接触大量类库,阅读大量书籍的。°1 类库方面  「Awesome Python 项目」:vinta/awesome-python · GitHub  这里列出了你在尝试解决各种实际问题时,Python 社区已有的工具型类库,如下图所示:  你可以按照实际需求,寻找你需要的类库。  至于相关类库如何使用,必须掌握的技能便是阅读文档。由于开源社区大多数文档都是英文写成的,所以,英语不好的同学,需要恶补下。°2 书籍方面:  这里我只列出一些我觉得比较有一些帮助的书籍,详细的请看豆瓣的书评:科学和数据分析:  ❖「集体智慧编程」:集体智慧编程 (豆瓣)  ❖「数学之美」:数学之美 (豆瓣)  ❖「统计学习方法」:统计学习方法 (豆瓣)  ❖「Pattern Recognition And Machine Learning」:Pattern Recognition And Machine Learning (豆瓣)  ❖「数据科学实战」:数据科学实战 (豆瓣)  ❖「数据检索导论」:信息检索导论 (豆瓣)爬虫:  ❖「HTTP 权威指南」:HTTP权威指南 (豆瓣)Web 网站:  ❖「HTML & CSS 设计与构建网站」:HTML & CSS设计与构建网站 (豆瓣)  ...  列到这里已经不需要继续了。  聪明的你一定会发现上面的大部分书籍,并不是讲 Python 的书,而更多的是专业知识。  事实上,这里所谓“跳出 Python,拥抱世界”,其实是发现 Python 和专业知识相结合,能够解决很多实际问题。这个阶段能走到什么程度,更多的取决于自己的专业知识。¶ 深入阶段  这个阶段的你,对 Python 几乎了如指掌,那么你一定知道 Python 是用 C 语言实现的。  可是 Python 对象的“动态特征”是怎么用相对底层,连自动内存管理都没有的C语言实现的呢?这时候就不能停留在表面了,勇敢的拆开 Python 的黑盒子,深入到语言的内部,去看它的历史,读它的源码,才能真正理解它的设计思路。这里推荐一本书:  「Python 源码剖析」:Python源码剖析 (豆瓣)  这本书把 Python 源码中最核心的部分,给出了详细的阐释,不过阅读此书需要对 C 语言内存模型和指针有着很好的理解。  另外,Python 本身是一门杂糅多种范式的动态语言,也就是说,相对于 C 的过程式、 Haskell 等的函数式、Java 基于类的面向对象而言,它都不够纯粹。换而言之,编程语言的“道学”,在 Python 中只能有限的体悟。学习某种编程范式时,从那些面向这种范式更加纯粹的语言出发,才能有更深刻的理解,也能了解到 Python 语言的根源。这里推荐一门公开课  「编程范式」:斯坦福大学公开课:编程范式  讲师高屋建瓴,从各种编程范式的代表语言出发,给出了每种编程范式最核心的思想。  值得一提的是,这门课程对C语言有非常深入的讲解,例如C语言的范型和内存管理。这些知识,对阅读 Python 源码也有大有帮助。  Python 的许多最佳实践都隐藏在那些众所周知的框架和类库中,例如 Django、Tornado 等等。在它们的源代码中淘金,也是个不错的选择。¶ 最后的话  每个人学编程的道路都是不一样的,其实大都殊途同归,没有迷路的人只有不能坚持的人。虽然听上去有点鸡汤,但是这是事实。最后的最后,再推荐下 SegmentFault 的免费公开课:Python 入门导论内容来自 SegmentFault 社区原文:如何系统地自学 Python?作者:何昊另外,再整理一份笔记和资源给提问者和其他在学Python的朋友们~1.Programming Computer Vision with Python 学习笔记《Programming Computer Vision with Python》是一本介绍计算机视觉底层基本理论和算法的入门书,通过这本收可以学到有关对象识别、基于内容的图像搜索、光学字符识别、光流法、跟踪、三维重建、立体成像、增强现实、姿态估计、全景创建、图像分割、降噪、图像分组等技术的实现原理。英文版PDF下载:https://it-ebooks.info/book/836/中文版介绍:http://book.douban.com/subjec...目录及章节简介Programming Computer Vision with Python (学习笔记一)先介绍基本的图像处理,包括图像的读取、转换、缩放、导数计算、画图和保存,这些知识将为后面内容的学习打下基础。Programming Computer Vision with Python (学习笔记二)首先介绍跟图像处理、显示有关两个库:NumPy和Matplotlib,然后介绍增强图像对比度的实现原理。Programming Computer Vision with Python (学习笔记三)原书对于PCA的讲解只有一小节,一笔带过的感觉,但我发现PCA是一个很重要的基础知识点,在机器机视觉、人脸识别以及一些高级图像处理技术时都被经常用到,所以本人自行对PCA进行了更深入的学习。Programming Computer Vision with Python (学习笔记四)上一个笔记主要是讲了PCA的原理,并给出了二维图像降一维的示例代码。但还遗留了以下几个问题:在计算协方差和特征向量的方法上,书上使用的是一种被作者称为compact trick的技巧,以及奇异值分解(SVD),这些都是什么东西呢?如何把PCA运用在多张图片上?所以,我们需要进一步的了解,同时,为示例对多张图片进行PCA,我选了一个跟书相似但更有趣的例子来做——人脸识别。Programming Computer Vision with Python (学习笔记五)SciPy库,与之前我们使用的NumPy和Matplotlib,都是http://scipy.org提供的用于科学计算方面的核心库。相对NumPy,SciPy库提供了面向更高层应用的算法和函数(其实也是基于NumPy实现的),并以子模块的形式组织,每个子模块对应不同的应用领域。Programming Computer Vision with Python (学习笔记六)边缘检测(edge detection)是最重要的图像处理技术之一,图像边缘检测大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性,为后续图像理解方法提供了基础。Programming Computer Vision with Python (学习笔记七)数学形态学(mathematical morphology)关注的是图像中的形状,它提供了一些方法用于检测形状和改变形状。起初是基于二值图像提出的,后来扩展到灰度图像。二值图像就是:每个像素的值只能是0或1,1代表描绘图像的点,0代表背景。基本的形态学运算包括:腐蚀(erosion)、膨胀(dilation)、开(opening)、闭(closing),对于这些运算,都需要用到被称为结构元素(Structuring element)的模板,一般为方形,以小矩阵的形式表示,但它的元素的值只能是0或1,它代表的是一个集合,这个集合罩在原图像上,可以跟原图像的形状进行集合运算。Programming Computer Vision with Python (学习笔记八)图像去噪(Image Denoising)的过程就是将噪点从图像中去除的同时尽可能的保留原图像的细节和结构。这里讲的去噪跟前面笔记提过的去噪不一样,这里是指高级去噪技术,前面提过的高斯平滑也能去噪,但高斯平滑去噪的同时也把边缘模糊化了,另外使用形态学的方法去噪是指去除一些粗的椒盐噪声。对于一幅密布噪点的图像,如果使其变得清晰又保留边缘细节,这是高级去噪技术所要解决的问题。Programming Computer Vision with Python (学习笔记九)角检测(Corner detection)是指检测图像中具有代表性的(我们感兴趣的)角点,一般讲为形状或边缘的拐角处,这些点可以大略标记对象在图像中的轮廓和位置,如果从一个图像序列中检测每个图像的角点,就可以找出图像之间存在的相关和相对应的角点,这对比如全景拼接(多张图片拼接成一张全景图片)很有用。角检测还可以用在运动检测、物体识别等方面。Programming Computer Vision with Python (学习笔记十)现在考虑一个全景图拼接的应用场景,假设现有两张图片需要拼接成一张全景图,这两张图片是通过相机右转一定角度拍摄出来的,两张图片有部分取景是重叠的。如何实现拼接?当然这是一个不简单的问题,我们现在只考虑实现拼接目标的第一步:找出图像中重叠的内容,以及分别在两张图片中的位置。Programming Computer Vision with Python (学习笔记十一)尺度不变特征变换(Scale-invariant feature transform, 简称SIFT)是图像局部特征提取的现代方法——基于区域/图像块的分析。在上篇笔记里我们使用的图像之间对应点的匹配方法,不适用于不同尺度的图像。有许多应用场景需要对不同尺度(即分辨率、缩放、旋转角度、亮度等都可能存在不同)的图像进行特征识别和匹配,这就需要一种特征提取方法,通过这种方法提取出来的特征描述,可以不受尺度的影响,SIFT算法就是这种方法的实现。SIFT算法的应用非常广泛,包括物体识别、机器人地图感知与导航、全景拼接、3D建模、手势识别、影像追踪和动作比对等,原书后面章节的算法也会多次用到它。SIFT算法的过程较复杂,本文只是粗略介绍其关键步骤,以便引出SURF——基于SIFT的改进算法。Programming Computer Vision with Python (学习笔记十二)ORB(Oriented FAST and Rotated BRIEF)可用来替代SIFT(或SURF),它对图像更具有抗噪特性,是一种特征检测高效算法,其速度满足实时要求,可用于增强图像匹配应用。ORB的算法基于FAST角检测(Features from accelerated segment test)和BRIEF(Binary Robust Independent Elementary Features)特征描述符,这也是它名字的由来。最后的最后,再推荐下 SegmentFault 的免费公开课:Python 入门导论2.资源图文教程:Python教程 by @廖雪峰Crossin的编程教室 微信公众号:crossincode by @CrossinPython快速教程 by @Vamei零基础学Python,GitHub地址 by @老齐PyPython学习笔记(第二版) by @qyuhen个人点评:我是跟着“Crossin的编程教室”的微信公众号每天学习一课来学习Python的,当时的动力是据说“Python女神”也在学完习,后来也看过廖雪峰老师的教程,Vamei和老齐Py的没有看过。网站教程:《Python入门》 and 《Python进阶》 by @廖雪峰 from 慕课网《"Python研发工程师"的技能树》 from 实验楼《Learn to program in Python》 from Codecademy《Learn Python the hard way》Crossin的编程教室 by @Crossin (将课程分门别类了)视频教程:《疯狂的Python:快速入门精讲》《玩转Python教程》《零基础入门学Python》经典入门书籍:中文书籍《Head First Python(中文版)》《Python基础教程(第2版·修订版)》《笨办法学Python(第三版)》《简明Python教程》《Python编程实践》英文书籍25本免费的Python电子书9本免费的Python编程书笔记和资源来自 SegmentFault 以下两篇社区文章:SegmentFault 技术周刊 Vol.30 - 学习 Python 来做一些神奇好玩的事情吧Python 初学者的资源总结

2018-12-22 11:53

评论

1

0/140

发布

匿名

python 搜索引擎 实验楼的源码_【如何入门 Python 爬虫?】-看准网相关推荐

  1. python 搜索引擎 实验楼的源码_Python语言之简历有错别字被拒绝聘用?文档被领导说?Python实现永无错别字!...

    本文主要向大家介绍了Python语言之简历有错别字被拒绝聘用?文档被领导说?Python实现永无错别字!,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 找出中文错别字 1.5 代 ...

  2. python初学者编程指南源码_如何系统地自学 Python?

    是否非常想学好 Python,一方面被琐事纠缠,一直没能动手,另一方面,担心学习成本太高,心里默默敲着退堂鼓? 幸运的是,Python 是一门初学者友好的编程语言,想要完全掌握它,你不必花上太多的时间 ...

  3. Python实现天气查询源码_复制可执行,可用

    Python天气查询源码 本文爬去的是通过 Python3 中国天气网数据,包含查询城市十五天的天气情况及今明两天的生活指数 本文实现查询有两个.py文件(city.py  weather.py) 注 ...

  4. python版植物大战僵尸源码_基于python的植物大战僵尸游戏设计与实现.docx

    湖南理工学院毕业设计(论文) PAGE PAGE 1 学 号 毕业设计(论文) 题目:基于python的植物大战僵尸游戏设计与实现 作 者 届 别 届 院 别 信息与通信工程学院 专 业 信息工程 指 ...

  5. python量化选股策略 源码_常见的十大量化投资策略(附源码)

    量化投资策略是利用量化的方法,进行金融市场的分析.判断和交易的策略.算法的总称.著名的量化投资策略有以下10种(注:策略源码模板不能直接用于实盘交易,仅供探讨交流) 01.海龟交易策略 海龟交易策略是 ...

  6. python 在线网盘源码_和付费网盘说再见,跟着本文自己起个网盘(Java 开源项目)...

    本文适合有 Java 基础知识的人群,跟着本文可学习和运行 Java 网盘项目. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>[1]系列. 今天给 ...

  7. python内置函数源码_如何查看python内置函数源码

    在用Python进行各种分析的时候,我们会用到各种各样的函数,比如,我们用SQL时,经常使用join.max等各种函数,那么想看Python是否有这个函数,这个时候可能大部分人会百度,那么如何不使用百 ...

  8. 小说网jsp源码_基于jsp+mysql的JSP小说网

    运行环境: 最好是java jdk 1.8,我们在这个平台上运行的.其他版本理论上也可以. IDE环境: Eclipse,Myeclipse,IDEA都可以 tomcat环境: Tomcat 7.x, ...

  9. python 字节码_简单入门python字节码混淆

    前言 我就是小菜鸡本鸡了,不是很会写东西,请各位大佬多多见谅.本文基于python2.7,因为python3并不是很懂. python文件如果要发布的话,有时候还是难免想保护一下自己的源码,有些人就直 ...

最新文章

  1. 在github上创建自己的第一个项目仓库实录
  2. CUDA Samples: approximate prior vbox layer
  3. R语言splines包构建基于logistic回归的自然样条分析:南非心脏病数据集、非线性:基函数展开和样条分析、你简单分析的不重要特征,可能只是线性不显著、而非线性是显著的
  4. 了解linux内核必读的5本书
  5. Akka(32): Http:High-Level-Api,Route exception handling
  6. pycharm 调试(debug)模式时界面上的 mute breakpoint 是什么意思?(239)
  7. 使用互斥体使程序只运行一个
  8. kafka版本 不对问题
  9. Redis服务信息--Info指令
  10. 计算机网络(十六)-轮询访问介质访问控制
  11. 如何使用libgdx编写一个简单的游戏(一)— 雏形
  12. Python发送POST request payload形式的请求
  13. 关于yii2学习笔记:gii的使用
  14. Asia Hong Kong Regional Contest 2016
  15. MyBatis框架、log4j、数据库的配置文件
  16. 你理解的智能家居就是智能家居么?
  17. 德勤咨询:2021年度企业人工智能应用现状报告(第4版)
  18. shrinkwrap-resolver解析pom依赖
  19. MATLAB 自动控制原理 传递函数单位阶跃响应曲线绘制
  20. 上课为什么要认真听见?

热门文章

  1. 前端笔记:第二章:HTML怎么展示在网页上---- 第1集:怎么编写一个网页
  2. SCCM2007R2 setp by setp详细部署流程(三)-用户的建立
  3. 中国软件工程历程与发展(来源:杨芙清院士)
  4. roku能不能安装软件_如何在Roku上禁用自定义广告和跟踪
  5. 计算机专业课观后感,计算机公开课观后感
  6. 当IE浏览器设置了代理,改变不了的时候,就需要在右上角设备哪里--找到安全--Inprivate---点击--然后就可以设置了-intenet选项去掉代理了
  7. 360面试总结(Android)
  8. C++核心准则ES.30: 不要使用宏进行程序中的文本操作​
  9. Apollo自动驾驶进阶课(5)——Apollo感知技术
  10. CELLS方式引用单元格