入门前的准备
Python 是什么,为什么要学 Python
Python 是一种面向对象的解释型语言,由荷兰人 Guido van Rossum 于 1989 年发明,由于它自身的易于学习、易于阅读和优秀的扩展性,天生地适应了大数据和机器学习的需求,Python 已经在权威语言排行榜 TIOBE 站稳了跟脚,并且份额还在持续增加。
Python 的强大之处在于:“同一个需求,用 C 实现可能需要 100 行,用 Java 可能需要 50 行,而用 Python,可能只需要 5 行。”
但是它有一个致命弱点:慢。极端情况下运行速度可能只有 C 的百分之一。同时,作为解释型语言,Python 不像 HTML 那样有浏览器这种 PC 必备的解释器做支撑,运行 Python 脚本,必须要自行下载解释器;虽然打包 Python 可以脱离解释器运行,但是打包过程的繁琐也常为人诟病。
但是千万不要低估 Python 可以带给我们的惊喜。下面是我总结的 Python 开发的四个大方向。
利用 requests、bs4、PyQuery、Scrapy 等库,我们几乎可以爬取到网页上一切看得见、听得到的东西,例如爬取网易云评论、下载妹子图片云云;而 selenium、phantomjs 除了爬取资源,另外几乎可以帮助我们完成所有的网页自动化测试任务,例如抢票、抢课脚本。
数据方向,pandas + matplotlib/seaborn 可以完成大部分数据分析及其可视化任务,sympy + numpy + scipy + matplotlib/seaborn 则是科学计算与可视化的利器。
几乎所有的机器学习框架,都有 Python 实现的版本。比如 算法实现支持库 Tensorflow、快速目标检测库 yolo 等不胜枚举。
Web方向,Django 库 和 flask 库 极大地减少了开发成本、缩短了开发周期,听说某乎的后台就是用 flask 支持的。
无论你是想要学习 Python 的编程小白,还是学腻了 C/Java 等编译型语言后想体会解释型语言的乐趣的大佬,本文的大门都是为你敞开的。
Python 安装、环境选择
仅针对 Windows 做说明,其他系统道理相通、流程类似。 紧跟下面的教程,有如疑问欢迎在我的读者圈提问。
Python 安装流程
官网下载 Python,推荐 Python 3.6+,Python 2 就不要选了,明年 Python 2 就要被停止维护了,Python 3.5 及其以前的版本没有诸如协程等新特性的加持,Python 3.7 又因为太新而不稳定。
安装 Python 时注意两个要点,第一:勾选 Add Python to Path,第二:最后自定义安装路径,安装路径一定要记得在哪,方便后续配置,且安装路径中一定不要包含中文。具体可见下图。
Python 集成开发环境的选择
有关 IDE 的选择,在这里简单说说我的经验,最最最开始可以尝试下 Python 自带的 IDLE,这样的话你可以跳过下一步;对科学计算和数据分析有特殊需求且嫌安装包麻烦的推荐使用 Anaconda;其他的,我强烈推荐使用 Pycharm,可以去官网下载免费的 Community 版。
安装过程几乎没有什么需要特别注意的地方,安装完成后,点击启动页的Create New Project,新建一个工程,在弹窗中配置工程的相关信息。
然后就可以愉快地在 Pycharm 里面编写 Python 了。
需要修改主题颜色及代码风格,点击File-->Setting-->Appeareance
至此,恭喜你完成了学习 Python 前的所有准备,下面正式开始学习。
Python 基础学习
四位一体学习法
磨刀不误砍柴工,先来介绍下我自创的学习 Python 的四位一体学习法。
浏览器收藏一个在线教程,安利廖雪峰大神的 Python 基础教程。
身边常备一本 Python 书,推荐清华大学出版社董付国主编的《Python程序设计基础》,红色封面的,不要买错了。作为对电子版教程的补充,在没电脑没网的时候学习是极好的,同时,在纸质书上可以做一些重要的总结笔记。
如果你觉得看电子/纸质教程太累了,不妨试试视频教程,去慕课网、腾讯课堂、网易云课堂搜搜 Python, 你会打开新世界的大门,甚至可以跟着这些视频做一个小项目,增强学习的趣味性,实现学习的正反馈。
遇到问题一定要及时解决,遇到一些环境设置之类的问题,建议先百度,对代码理解模糊不清的,查 API 写代码调试;解决问题过程获得的经验一定要写成博客分享出来,一来分享本来就是一种乐趣,二来可以让别人检验你的经验正确与否,最后在以后遇到相同的问题或者困惑,可以快速定位解决。
Python 精要知识点总结
Python 的知识点全部囊括的话几本书都写不完,这里的知识点都是我提炼后的启发式的、极其重要的、pythonic 的知识点,希望大家耐心阅读,最好上机编码调试。
最后
只看书不会进步,思考和实践才有成长,自学编程是一个比较枯燥的过程,如果没有正向反馈,学习的积极性很容易被打压下来,所以你应该积极参与到相关的技术圈子中去,尝试去解答力所能及的新手问题,向圈子中的大牛们寻求帮助,善于总结自己所学到的东西,分享给更多的人,记住,你不是一个人在战斗。

公众号:Python大世界
只看书不会进步,思考和实践才有成长,自学编程是一个比较枯燥的过程,如果没有正向反馈,学习的积极性很容易被打压下来,所以你应该积极参与到相关的技术圈子中去,尝试去解答力所能及的新手问题,向圈子中的大牛们寻求帮助,善于总结自己所学到的东西,分享给更多的人,记住,你不是一个人在战斗。
公众号:Python大世界