接触python一年有余,大部分时间都是自己在摸索,走了很多弯路,写下这篇博客以供各位参考,希望大家少走弯路。毕竟人生苦短,少犯低级错误。
首先,我们要了解python能帮助我们的生活吗,否则学它有什么用?想象这样的画面,当我们苦点鼠标去刷新12306网站,只为求一张回家票的时候;当我们陷入office枯燥的重复工作的时候,当我们需要汇总微信发来的信息的时候,当我们需要爬取某网站大量数据的时候,你是否想过只需要几行代码就可以解放双手,摆脱无谓的时间,去做我们想做的事,如果你已经感同身受,就尝试学学python吧。
一、准备工作
1.1 系统
我用的操作系统Windows10,没有用过苹果电脑,所以这里我只讲Windows系统(其实用Linux系统最佳,没有那么多兼容问题)。
1.2 python版本
新手面临的第一个问题就是python版本的选择问题,我推荐python最新版3.7,不用考虑python2版本,马上就停止使用了,但市面上很多参考书都是基于python2版本写的,所以有时候我们也要了解一下python2版本。
1.3 编译器
确定了版本,下一个问题就是安装什么编译器,对于数据分析的同学,我推荐anaconda。下载地址: 官网下载
傻瓜式安装,一路下一步就OK,在这里勾选第一个,把anaconda添加进环境路径。
安装完成打开anaconda里的spyder,图像和界面如下
其界面模拟matlab,用过matlab的同学一定会感到非常亲切,可以实时查看各变量情况,而不需要输入print函数。
还有一个最流行的就是JetBrains PyCharm Community Edition软件,比较适合编写项目使用,具体下载安装请参考python环境搭建和pycharm的安装配置及汉化(零基础小白版)
其实刚入门的小白最怕的就是选择,如果实在不知道该用哪个,就用anaconda,它的优点是简单无脑,非常适合新手,缺点是内置了大量的第三方库(也未必是缺点,省的你自己安装下载了),所以体积略为臃肿,等熟练使用了,再换 PyCharm看看适不适合自己。
1.4 安装第三方库
python只安装了标准库,大量实用的第三方库还需要手动安装,安装方法主要是通过pip进行,步骤是win键+R打开运行,输入cmd确定,进入命令行,输入pip install [packname],这里的packname就是你要安装的第三方库名,例如非常有用的resquests库,安装方法为pip install requests;如果需要卸载就输入pip uninstall [packname]。但这里有个问题就是pip默认使用的下载源是外国网站,下载速度感人,所以最后把下载源改成国内的,当然如果你能忍受这个下载速度,嫌麻烦也可以不换。
国内源:
新版ubuntu要求使用https源,要注意。
清华:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:http://pypi.hustunique.com/
山东理工大学:http://pypi.sdutlinux.org/
豆瓣:http://pypi.douban.com/simple/
windows下,直接在user目录中创建一个pip目录,如:C:\Users\xx\pip,新建文件pip.ini,这里不要用系统自带的文本,用notepad++软件进行创建,这个软件网上一搜全都是,程序员必备软件,就不提供下载地址了。
输入内容,编码为UTF-8
[global]
index-url=http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
这里推荐常用的第三方库:
requests(网络爬虫,解析url)
selenium(模拟浏览器爬取)
lxml(解析HTML文档)
openpyxl;xlrd(excel读写)
docx(word读写)
pyautogui(控制电脑鼠标和键盘)
pyinstaller(将python脚本封装为exe文件)
itchat(微信)
uiautomator2(使用adb控制手机自动化测试)
jieba(进行中文语句分词)
wordcloud(词云)
1.5常用软件
推荐一些常用软件,绝对可以大幅提高你的效率
1.Google Chrome(以后网络爬虫分析都用谷歌浏览器)
2.Bandizip(解压,无广告)
3.Fiddler或者Charles(手机抓包)
安装参考:Charles 破解版
4.Appetizer(手机自动化测试)
5.notepad++(程序员专用,可以打开各种类型文件)
6.SketchPath(查看xpath路径)
7.ditto(剪切版,复制粘贴多个数据)
8.天若OCR文字识别(截图识别文字)
9.Everything(秒搜电脑文件)
10.Free Download Manager 5(多线程下载器)
11.spy++(抓取电脑控件)
1.6编程中的好习惯
这里参考知乎一篇回答:编程中,有哪些好的习惯从一开始就值得坚持?
1.规范化自己的代码,少点个人风格,多点通用规矩
2. 宁可变量名长,也不要让变量名短得让人无法推测其含义。
3. 在电脑里安装两套输入法,编程的时候,将中文输入法彻底关掉,确保任何快捷键都不会将其转换成中文输入法,防止中文类似符号引起混淆,
比如:中文 :(); English: () ;
一点点小错误,就有可能让你多花一两个小时在没有意义的事上,人生苦短,尽量避免低级错误。
4.尽可能杜绝重复代码,凡是需要用至少两次的代码,给它单独做一个类或函数。
5.避免类与类之间的内部调用(Cycle Reference),其实也就是降低函数模块的耦合程度。类与类之间的调用只允许通过接口,保证更改某个类的时候,其他的仍然能工作。
6.多读别人的优秀代码,拿别人的优秀代码和自己的代码进行对比,学习别人的长处,吸收经验。
7.尝试着做内容的生产者,尝试着写一些教程或笔记,分享给社区,不要只做社区内容的吸收者,还要不断地生产内容,回馈社区给你的帮助,比如在StackOverFlow上回答别人的问题等。
8.既要脚踏实地,也要多看看社区发生了什么新闻,有什么新的技术和软件的发布,这些技术和软件将怎样影响你的开发工作,现在使用的IDE或Editor是否有更好的替代产品等等。
9.没有任务的时候,也不要闲下来,去开发点你喜欢的东西,从中挑战自己,增长经验。
10.不要过分依赖教程,要学会看官方文档。凡是能被做成教程的东西,往往已经过时了,最新的技术,最新发布的标准,往往没有现成的教程,你需要去认真阅读官方文档,那里的东西才是最权威的。
11.不要参与语言好坏的争论,人们往往偏向于喜欢自己用得熟练,用得多的那个语言,语言好坏之争,就和争谁的女朋友漂亮一样,我当然觉得自己的女朋友(虽然是null)最漂亮,但是别人并不这么觉得。
12.当你有什么需求的时候,往往别人也有这个需求,而且往往也有了相应的工具去解决你这个需求,比如,你想将函数的调用关系可视化,弄成树状图那样,这样的工具已经有了,比如SourceInsight(付费),Source Navigator(免费)等。
13.少在国内的XX软件园里下载各种破解软件,盗版软件等,这些软件园为了盈利,会在你安装的过程中,悄无声息地给你安装上一堆其他的流氓软件,360首当其冲,这些垃圾软件,删的越干净越好。
14.你的开发电脑,CPU可以差些,但内存最好大些,推荐至少要8G,甚至推荐10G往上走,你常常需要同时打开一堆浏览器页面和一个IDE甚至还有别的一堆工具,如果你做过安卓开发,AndroidStudio动辄就调用你电脑2-3G的内存,一般的4G电脑肯定是吃不消的,严重降低开发体验,但也并不是让你换电脑,内存条了解一下。
15.保持一个健康,干净的电脑状态,硬盘里的文件存储要有调理,容易寻找指定文件,降低文件丢失概率,加快文件寻找速度。
16.C盘快满了的话,可以通过Disk Manager将别的磁盘的空间送给C盘。
17.可以考虑用一个电脑架子,防止乌龟颈,保护颈椎。
18.下载一个护眼宝,保护视力。
二、基础篇
准备工作完成,学习基础才是重点,有多少人从入门到放弃,根本上就是没有动力,学习过程中没有得到及时的回馈,遇到错误不知道怎么解决,最后放弃挣扎。所以这里我推荐的学习过程是,在学习python过程中能很快帮助你的生活,例如excel和word自动化处理,手机自动化处理,简单爬取朋友圈数据,微博数据,这些项目能让你有动力继续深入学习下去。
具体过程是边看书,边看python官方文档,边自己编程练习,这样学习效率最高。书籍下面有推荐,为了防止从入门到放弃,这里我只优先推荐一本书,Python编程快速上手 让繁琐工作自动化,非常通俗易懂,缺点是作为python的核心“类”没有讲,但足够让你有动力学习下去。
闲来无事可以看看下面推荐的知乎回答和微信推文,很多有意思的项目也会让你干劲十足。
2.1 书籍入门
1.Python编程快速上手 让繁琐工作自动化
2.python无师自通
3.PYTHON网络爬虫从入门到实践
4.笨办法学Python(第四版)
5.《Python 3网络爬虫开发实战》
也可以参考知乎一篇回答:自学入门 Python 优质中文资源索引
2.2网络教程入门
1.廖雪峰的官方网站
2.Python 3.7.3 中文官方文档
2.3知乎回答
1.你在 GitHub 上看到过的最有意思的项目是什么?
2.爬虫究竟是合法还是违法的?
3.用Python实现ppt转化图片(附带长图合并功能)
4.一篇了解爬虫技术方方面面
5.主流网站 Python 爬虫模拟登陆方法汇总
6.Python爬虫需要学习那些东西?
7.受用一生的高效 PyCharm 使用技巧(一)
8.Google推出了Python最牛逼的编辑器
9.23个Python爬虫开源项目代码,包含微信、淘宝、豆瓣、知乎、微博等
10.7步搞定数据清洗-Python数据清洗指南
11.你们都是怎么学 Python 的?
12.GitHub 上有哪些优秀的 Python 爬虫项目?
13.156个Python网络爬虫资源,妈妈再也不用担心你找不到资源!
14.你都用 Python 来做什么?
15.为什么网络爬虫好难,涉及到的知识我不会?
16.Python的高级特征你知多少?来对比看看
2.4 微信公众号
1.学习python的正确姿势
2.Charles的皮卡丘
3.麻瓜编程
以下为公众号文章
1.如何在手机或 iPad 上写 Python 代码?
2.如何爬取异步加载数据
3.有一个利器,能帮你快速爬取你想要的一切……
4.码农进阶清单 | 每天用干货喂饱你
5.盘点 2017 年 Python 领域值得关注的 5 个库、工具和开发者
6.用 Python 高效办公 | 一次写好100个 word 通知
7.我是如何高效写爬虫的?
8.推荐几个值得关注的爬虫库
9.老司机干货 | 用爬虫来学习 Python 并发编程
10.Python 爬取爱奇艺腾讯视频 250,000 条数据分析为什么李诞不值得了?
三、进阶
选择自己喜欢的领域深入进行研究
3.1 微信
itchat项目简介
3.2 手机自动化测试
1.adb 常用命令
2.ATX 浅谈自动化测试工具 python-uiautomator2
3.全程不用usb数据线,adb通过网络连接Android设备
4.uiautomator2官方文档
3.3 office自动化处理
我博客总结的一些用法
1.openpyxl库用法
2.win32处理excel
3.win32处理word
4.docx模块处理word
3.4 数据可视化
pyecharts官方文档
3.5 win32操作windows系统
1.史上最强—win32 API函数大全文档
2.python win32api win32gui win32con 简单操作教程
3.如何利用Python和win32编程避免重复性体力劳动(一)
4.python windows软件窗口menu操作 pywin32库