决定写这套 Python 教程时,实属偶然,单纯地为了满足一个小女孩儿她极强的好胜心。小外甥女有天去找同学玩儿,恰好碰到人家在学 Scratch 编程,一种图形化的编程工具。她一眼就喜欢上了,回来跟我说,她也想学,感觉超酷的,等学会了,以后在学校里也能得瑟一下。
既然是要去得瑟,感觉 Scratch 还是太简单了些,还不如教她正式的编程,从小要是能持续积累一些编程经验,未来对她的成长大有帮助。其它不说,编程中最基本的逻辑判断能力、英文阅读能力,长期积累下来,足以能够让她在生活中更独立,能读更多的外文图书、资料。
我想教她一门,随时拿起来就能用的「工具」,首先排除了 Java、C 这类过于庞杂的语言,太枯燥了;也想过要不学点儿小程序开发吧,但我不太想她一直抱着手机,而且小程序等一些前端的技术会让人过于在意它「好不好看」,对于美不美这件事儿,我实在搞不定。
最后,决定带她学 Python,一种能解释执行的脚本语言。我尤其喜欢它能灵活处理数据这块儿,比如,等她学会怎么用 Python 进行数据分析了,她可以去做一个近几年高考中英语的高频词汇有哪些的分析,这对她自己的学习本身就有巨大的帮助。
1、Python 初识
「人生苦短,我用 Python」,因为 Python 语法简单,容易上手,目前已经成为最流行的,也是最适合初学者入门学习的编程语言之一。
编程语言尤其多,各有各的优点,但 Python 颇受开发者和分析师的青睐,主要是它拥有如下几个大家非常喜爱的特点:
- 简单易学
- 语法结构简单,对初学者来说,学习门槛低,极易上手
- 运行够快
- Python 底层由 C 语言来实现,包括很多第三方库也都是由 C 来实现,运行速度足够快
- 高级语言
- 使用高级语言,我们不需要额外关注内存管理,也不需要过多操心其系统架构
- 表现力强
- Python 非常人性化地提供了很多的构造,让我们可以专注于解决方案,而不是如何把程序写漂亮
- 免费开源
- Python 及其第三方库是开源且免费的,对开发者来说是莫大的福音,我能可以直接通过其官网下载获取
- 可移植性
- 目前 Python 可以被移植到 Linux 系统
Python 的生态极为丰富,拥有很多丰富且很强大的库(模块),基于这些模块,在处理很多复杂场景下的问题时,我们只需要掌握少量的代码,就可以解决了。
在接下来的内容中,我会通过不同场景中的案例,演示问题的分析到解决的过程和细节。包括数据的读取、清洗过滤、可视化等,还有办公自动化有关的 Excel、Word、PPT 等文件的操作,甚至某些通信工具的机器人开发,都会涉及。
此外,Python 还可以应用在数据分析、网站建设、游戏开发等方面。
2、什么是办公自动化?
职场中的我们,或多或少都会做一些重复性的工作,而且还要耗费大量的时间和精力,更尴尬的是时不时还出错,还不容易发现。
像企业里的人事、财务等等部门,大量的极其琐碎、重复的文档类操作,无时无刻不在消磨同事们的积极性。比如,每个月核算员工工资,通过邮件发送工资条,都能让他们不可避免地加班。
我们是否可以通过 Python 程序,来把这些重复且繁杂的单调工作,实现自动化来省下大量的时间呢?答案是,肯定可以,完全没问题,技术是无比强大的。
如何把自己工作中那些大量的极其琐碎、重复的工作,交给计算机,交给 Python 程序来处理呢?其实很简单,咱可以围绕这几步来实现:
第一步,认真去观察、思考,在日常工作中,你所负责的部分,哪些是琐碎又重复的,具体由哪几个步骤构成的,并把它们详细地拆解出来;
第二步,仔细思考,判断刚刚拆解出来的这几步,是否可以完全交给程序来完成,最终目的,就是把你的某个目标,合理地拆成多个可执行的小步骤;
第三步,接下来的,就交给程序来帮你完成这些步骤。
我们来看个例子,公司每个月都要给所有员工发工资,至少要涉及人事和财务两个部门。有的企业是财务部门会计,有的是人事部门人事会计,根据每个公司的系统或工作流程,计算工资的部门也不同。
在这里,我们按先由人事部门根据正常出勤和业绩考核、五险一金等来算出每个员工的薪资,再提交至财务部门核对,确认无误后则将薪资发放至银行卡,最后人事部门再将每月工资条通过邮件同步至每位员工。
我们来拆解一下,有两大步:
第一步,使用 Python 处理 Excel 数据;
第二步,设置邮箱和发送邮件。
但是你看,还不够细,我们还可以进一步拆解:
第一步,使用 Python 处理 Excel 数据
- 自动登录公司后台管理系统;
- 自动访问员工信息页面;
- 自动爬取员工单月信息;
- 自动统计员工薪资并生成 Excel 文档;
- 自动提交人事、财务部门进行核查;
- 自动发放薪资;
第二步,设置邮箱和发送邮件
- 自动读取 Excel 文件数据;
- 自动拆解每位员工的信息并生成个人 Excel 文件作为工资条;
- 自动登录邮箱;
- 自动给每位员工发送包含个人薪资信息的邮件;
你看,是不是拆解之后,每一步都很清晰且可执行。你只需要花点儿时间,将所有步骤通过程序来实现,那你就不仅能大幅度提高工作效率,还能避免没必要的错误,最重要的是能省下大量的时间和精力去做更加有意义的事情。
3、搭建 Python 开发环境
在咱们正式使用 Python 之前,先要把 Python 的开发环境搭建好,工欲善其事,必先利其器。主要是为了咱们后面把程序写好了之后,计算机能够识别出来,并且还能让程序跑起来,最终才能看到程序的执行效果。
这里需要给大家依次介绍几个重要工具的安装和使用方式,分别是:
- 如何安装 Python?
- 如何安装最流行的 Anaconda 集成开发环境?
- 如何安装 Jupytere 库?
- 如何安装和使用 pip 库管理工具?
3.1 安装 Python
这是比较原始的安装方式,此处仅要求了解即可,接下来会给大家介绍更方便的 Anaconda 集成开发环境的搭建方式。
Python 一种能解释执行的脚本语言,我们在电脑上安装 Python,实际上是安装了一套 Python 的解释器,为的是能让计算机能懂咱们写的 Python 代码想干嘛,要不电脑哪知道你要做什么呢?
Python 解释器是一款应用程序,它会将写好的 Python 程序按照其语法规则,去翻译成计算机可以识别且能够运行的机器码。
接着,我们去访问 Python 官网(https://www.python.org/),鼠标悬浮在 Downloads 标签上,就能看到针对你当前操作系统适用的 Python 版本的下载按钮,直接点击即可。
如果你用的是 Mac OS,也就是苹果电脑,在系统中通常已经安装了 Python,你可以打开「终端应用」,并输入 python -V
命令来检查现有版本。
如果你的 Python 版本还是 2.x,那么建议你下载并安装 3.x 版本。点击上面的下载按钮后,你将得到一个「python-3.10.5-macos11.pkg」文件。
第一步,双击打开 pkg 文件,开始安装。
第二步,按照「Python 安装向导器」的步骤,一步一步向下安装即可。安装过程非常简单,在弹出来的对话框,你直接点「继续」。接着,还需要你「同意」软件许可协议。
然后,选择安装的位置,建议默认不做任何改变,直接「安装」即可,直至安装成功。
第三步,我们再次打开「终端应用」,并输入 python -V
命令,就可以看到刚安装好的最新版本。
3.2 安装 Anaconda 集成开发环境
极力推荐大家安装 Anaconda,也是目前最流行的方式,在 Anaconda 集成环境中,我们不仅拥有了 Python 编程环境,还可以使用 Jupyter Notebook 编辑器,而且系统还会帮咱自动安装好一些常用的第三方库,省下不少功夫。
通过浏览器访问 Anaconda 官网(https://www.anaconda.com/products/distribution),官方提供了个人和商业版,它还支持 Mac OS、Windows、Linux 三大操作系统。咱们选择符合自己电脑系统的版本即可,这里我使用的是 Mac OS,直接点击「Download」按钮开始下载即可,你将得到一个「Anaconda3-2022.05-MacOSX-x86_64.pkg」文件。
第一步,双击打开 pkg 文件,开始安装,安装步骤跟安装 Python 几乎一致。
第二步,按照「Anaconda 安装向导器」的步骤,一步一步向下安装即可。安装过程非常简单,在弹出来的对话框,你直接点「继续」。接着,还需要你「同意」软件许可协议。
然后,选择安装的位置,建议默认不做任何改变,直接「安装」即可,直至安装成功。
第三步,在「应用程序」中,找到「Anaconda-Navigator」并打开,咱们就可以看到一个工作台了。可以看到,有些工具已经安装好了,比如 Jupyter Notebook,你直接点它下面的 Launch 按钮就能启动了。
3.3 使用 Jupyter 库
3.3.1 认识 Jupyter Notebook 和 JupyterLab
当 Anaconda 安装好之后,咱的 Jupyter Notebook 和 JupyterLab 两款工具也被安装好了,它们属于 Jupyter 库,是比较常用的开发环境。
Jupyter Notebook 是一款通过在浏览器中使用的优秀「交互式」编辑工具,咱们可以通过它来编写和执行 Python 代码。它还能够将代码、文字做到很好的融合,特博是在写完代码后,马上执行就能看到反馈。
比如,我通过代码画了一张「条形图」,特别简单:
3.3.2 使用 Jupyter Notebook
接着,我们就来研究一下,如何通过 Jupyter Notebook 来编写和执行 Python 代码。
第一步,在 Anaconda 工作台上,点击 Jupyter Notebook 下面的 Launch 按钮,启动之后会自动通过浏览器打开它的工作台,接着就可以看到如下页面;
第二步,选择进入合适的路径后,你就可以点击「新建」,再选择「Python3」就可以创建一个新的笔记本了;
第三步,来吧,直接在文本框中输入一句代码,用的是 print() 函数 —— 它能够实现打印效果,知识确实超前了,但没有关系,现在我们只作观察,并不需要我们掌握它。
.
第四步,代码写好之后,需要运行它才能看得到结果。在菜单栏中,点击「运行」按钮,接着你就能在下一行看到打印出来的结果,确实很简单。
到此为止,我们迈出了最重要的一步,编写并运行了第一行 Python 代码。
3.3.3 使用 JupyterLab
JupyterLab 是 Jupyter Note 的最新一代产品,而且还集成了更多更好用的功能,它支持使用 Python 来实现数据分析、数据可视化等操作,目前颇受大家的喜爱。
第一步,在 Anaconda 工作台上,点击 JupyterLab 下面的 Launch 按钮,启动之后会自动通过浏览器打开它的工作台,接着就可以看到如下页面;
JupyterLab 窗口左侧一栏,是系统工作路径,也是我们存放笔记本的路径;右侧主要有 Notebook、Console、Other 等三大块儿,是所要创建笔记本的类型,还有一些常用文件的类型。
第二步,左边选好对应路径后,再选择创建「Notebook」类型的笔记本,就可以开始编写代码了。
编写了一个 print() 函数,在函数中指定了“I Love Python”字符,并将其运行打印了,结果如图所示:
是不是也很简单?后面,我们的案例默认使用 JupyterLab 来编写和运行。