Python分享第一节
最近受邀给团队中的小伙伴们分享Python知识,初步打算分成6节课教大家基础语法,然后再往数据分析方向拓展,本篇文章是第一节课的基本内容。
一、课前准备
- 笔记本电脑
- Anaconda安装包
二、课堂主题
第一课主要帮助零基础的同学了解Python以及帮助大家安装好Python的工作环境,同时普及一些基本的计算机知识,从而让大家可以更快的开始Python语法的学习。
三、本节目标
1、Python简介
2、为什么要学习Python
3、Python的安装与jupyter notebook的安装与使用
4、如何书写Markdown
5、解决问题的通用方法&书籍推荐
四、知识要点
4.1、Python简介
4.1.1、什么是Python语言
在学习Python之前,先向大家普及一些基本的计算机知识。
用任何编程语言来开发程序,都是为了让计算机干活,比如下载一个文件,编写一个文档等等,而计算机干活的CPU只认识机器指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。
相信大家在大学中都学过C语言,C语言的基本设计原则是让机器能够更快的运行,在那个年代,个人电脑的配置普遍都很低,所以更需要C这种更贴近于底层的语言,所以C语言的编写过程需要耗费大量的时间,即使他已经准确的知道功能应该如何实现,也因此,大家把C语言叫做面向过程的编程语言。
Python也是编程语言的一种,而且是一门高级编程语言,Python语法简单且功能强大,不仅适合初学者,也适合专业人员使用。
对于不同的编程语言来说,干同一个活,编写的代码量,差距也很大。
通常情况下,在完成同一种功能时,越高级的语言所需要的代码越少。可能完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行。 但是代码少的代价是运行速度慢,C程序运行1秒钟,Java程序可能需要2秒,而Python程序可能就需要10秒。
4.1.2、Python语言的优点
1、语法简单:Python是一种代表简单主义思想的语言,也是一种高级语言,不用考虑底层细节
2、易学:这点其实前面已经提到,python非常容易上手,类比于C语言来说有着极其简单的语法
3、免费、开源:Python是开放源代码的,你可以自由发布这个软件的拷贝、阅读源码、在它的基础上做改动
4、可移植性:由于Python开源的本质,它的代码不用修改就可以在多平台上运行
5、丰富的库:Python有众多的标准库与第三方库,它可以帮你处理各种各样的工作。
4.1.3、Python可以干什么
1、web开发:做服务器端编程,Python在这方面有非常常熟的web开发框架,如 Django和Flask。国内外有很多知名的网站都是使用Python进行开发,比如:豆瓣 、NASA、YouTube、 Quora等等
2、系统网络运维、软件测试:在运维工作中,有大量的重复性工作,并需要管理、监控、发布系统等,可以使用Python将工作自动化,提高工作效率。
3、爬虫百度蜘蛛:在爬虫领域,Python的地位无人撼动,将网络一切数据作为资源,通过自动化程序进行针对性的数据采集和处理。
4、数据分析:Python被广泛的应用到科学与数据分析中,比如图像可视化、数值计算等等,常用的包有Numpy、Pandas等
5、人工智能&机器学习:因为google等公司早期大量使用Python,为Python积累了丰富的科学运算库,所以当AI时代来临后,Python从众多编程语言中脱颖而出,现在各种人工只能算法都基于Python编写,Python作为AI时代头牌编程语言的位置基本确定
4.2、为什么要学习Python
上段时间有个新闻比较火:
潘总是做房地产的,尤其是商业地产,收集/分析/预测市场数据/竞争对手数据太重要了,所以我猜测潘总是用Python做爬虫+数据分析+AI预测,这样SOHO中国就变成了地产科技公司,一下子和其他地产公司拉开了档次,不仅可以吸( hū )引( yōu )投资人,公司估值也会上一个台阶😎。
回归正题,通过上面的了解其实大家也大体能够明白学习Python的好处。
从普通工作的角度上来说,Python可以实现一些办公自动化操作(自动处理Excel、自动收发邮件、批量给图片加水印等等)。
对于数据分析师的岗位而言,Python是一个功能强大的工具,可以快速的处理数据并进行可视化。
展望未来,人工智能正在迅速改变我们周围的一切,而Python提供了很多开箱即用的算法,让普通人也可以通过简单的学习做出一些人工智能的小应用
最后,伟大的哲学家鲁迅说过:
4.3、Jupyter Notebook入门
Jupyter Notebook 是一个在浏览器中使用的交互式的笔记本,可以实现将代码、文字完美结合起来,它的受众群体大多数是一些从事数据科学领域相关(机器学习、数据分析等)的人员。这里会告诉大家Jupyter Notebook入门时常用功能用法。
1)新建Notebook
打开的界面主要包含了以上的几个菜单,我们点击New
-Python3
来创建一个Python3的.ipynb文件。
每一个Notebook主要包含三个区域:文件名菜单栏(工具栏)、内容编辑
2)修改文件名
直接点击文件名,可以重命名当前Notebook的文件名,这里修改为“demo”。
3)熟悉菜单栏
这里介绍下常用的几个菜单栏的作用。
File
File 菜单中主要包含了以下功能:创建新的Notebook、打开新的界面、拷贝当前Notebook、重命名Notebook、保存还原点、恢复到指定还原点、查看Notebook预览、下载Notebook、关闭Notebook。
这里重点强调下下载Notebook选项,它可以将当前Notebook转为py文件、html文件、markdown文件、rest文件、latex文件、pdf文件。
Insert
Insert 菜单中包含了在当前位置之下插入一个新的cell(单元格)、在当前位置之上插入一个新的cell(单元格)。
Cell
Cell 菜单主要包含了运行cells、运行cells后并在之后插入新的cell、运行所有cells、运行当前之上的所有cell、运行当前之下的所有cell、改变cell类型(code、markdown、raw nbconvert)等。
Kernel
Kernel 菜单主要包含了中断kernel、重启kernel、重启kernel并清除输出、重启kernel并运行所有cell、重连kernel、关闭kernel、改变kernel类型。
Help
Help 菜单主要包含了用户交互引导、键盘快捷键、修改键盘快捷键、Notebook帮助、Markdown帮助、Jupyter-notebook-extensions帮助、Python帮助、IPython帮助、Numpy帮助、Scipy帮助、Matplotlib帮助、Sympy帮助、pandas帮助等。
如果能记住一些常用的快捷键,对使用Jupyter Notebook帮助还是很大的。
4)熟悉工具栏
工具栏上的内容都在下图中:
依次来介绍下,保存还原点、在当前位置之下添加cell、剪切当前cell、拷贝选择的cell、复制选择的cell、上移选中的cell、下移选中的cell、运行cell、中断kernel、重启kernel、修改cell类型、打开命令行调色板、美化cell代码。
很明显,工具栏中的功能大多都是菜单栏中的一部分功能的体现,主要是为了方便寻找。
5)运行Python代码
想要运行Python代码,其实很简单,因为Python代码最后都在 Cell 中编写的。首先在cell中编写好Python代码,然后点击运行,可以直接在下面看到结果。
仔细一点,我们可以发现,第一个cell前面有 “In [1]:”提示符,第二个cell前面有“In[2]:”提示符,同时也有“Out[2]:”输出符,这是因为如果没有print语句的话,Notebook会将当前cell的最后一条语句的结果以“Out[?]:”的方式输出。
6)编写Markdown
Notebook最友好的一个功能就是可以在cell中通过Markdown来编写文本。我们首先创建一个cell,然后更改类型为markdown,更改成功后,cell开头没有“In[?]:”的提示符。然后点击cell,按照markdown语法来输入文本。
除了对markdown语法的支持外,同时也支持html代码,此外,也支持latex公式语法。
使用latex公式时,如果需要在当前行内插入公式,公式前后分别需要一个$
,如果需要在下一行单独插入公式,公式前后分别需要两个$
。
4.4、Markdown的书写方法
4.4.1、Markdown简介
上面提到了Markdown,在这里稍微介绍一下。
- Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。
- Markdown 编写的文档可以导出 HTML 、Word、图像、PDF、Epub 等多种格式的文档。
- Markdown 编写的文档后缀为 .md, .markdown。
Markdown 能被使用来撰写电子书,如:Gitbook。
当前许多网站都广泛使用 Markdown 来撰写帮助文档或是用于论坛上发表消息。例如:GitHub、简书等。很多在线文档编辑软件(腾讯文档、石墨文档、阿里开源的雨雀等等)也都对Markdown有着很好的支持。很多互联网公司也慢慢开始直接使用Markdown来撰写需求文档与演示文稿,大部分程序员都使用Markdown进行文章、博客的写作。大家现在看到的pdf也是我使用Markdown写的。
优点:
1、因为是纯文本,所以只要支持Markdown的地方都能获得一样的编辑效果,可以让作者摆脱排版的困扰,专心写作。
2、操作简单。比如:WYSIWYG编辑时标记个标题,先选中内容,再点击导航栏的标题按钮,选择几级标题。要三个步骤。而Markdown只需要在标题内容前加#即可
缺点:
1、需要记一些语法(当然,是很简单。五分钟学会)。
2、有些平台不支持Markdown编辑模式。
4.4.2、Markdown语法
标题
在想要设置为标题的文字前面加#来表示
一个#是一级标题,二个#是二级标题,以此类推。支持六级标题。
注:标准语法一般在#后跟个空格再写文字。
# 这是一级标题
## 这是二级标题
### 这是三级标题
#### 这是四级标题
##### 这是五级标题
###### 这是六级标题
效果如下:
字体
- 加粗
要加粗的文字左右分别用两个*号包起来
- 斜体
要倾斜的文字左右分别用一个*号包起来
- 斜体加粗
要倾斜和加粗的文字左右分别用三个*号包起来
- 删除线
要加删除线的文字左右分别用两个~~号包起来
**这是加粗的文字**
*这是倾斜的文字*`
***这是斜体加粗的文字***
~~这是加删除线的文字~~
效果如下:
引用
在引用的文字前加>即可。引用也可以嵌套,如加两个>>三个>>>
> 这里是引用内容
>> 这里是引用内容
效果如下:
图片
![图片名称](图片地址 ''图片title'')
图片名称就是显示在图片下面的文字,相当于对图片内容的解释。
图片title是图片的标题,当鼠标移到图片上时显示的内容。title可加可不加
效果如下:
超链接
[超链接名](超链接地址 "超链接title")
title可加可不加
效果如下:
列表
1、无序列表
- 列表内容
+ 列表内容
* 列表内容
注意:- + * 跟内容之间都要有一个空格
效果如下:
- 列表
2、有序列表
1.列表内容
2.列表内容
3.列表内容
注意:序号跟内容之间要有空格
效果如下:
- 有序列表
- 有序列表
表格
|表头|表头|表头|
|---|:--:|---:|
|内容|内容|内容|
|内容|内容|内容|
第二行分割表头和内容。
- 有一个就行,为了对齐,多加了几个
文字默认居左
- 两边加 :表示文字居中
- 右边加 :表示文字居右
效果如下:
表头 | 表头 | 表头 |
---|---|---|
内容 | 内容 | 内容 |
内容 | 内容 | 内容 |
代码
```
代码...
代码...
代码...
```
效果如下:
select * from dual
Markdown写作工具推荐
一个所见即所得的免费Markdown写作神器:Typora
4.5、解决问题的通用方法&书籍推荐
4.5.1、“面向搜索引擎编程“
大家在开始尝试写代码的时候总会遇到各种各样的问题,其中一部分包含程序的错误,对于这方面问题,我更倾向于通过搜索引擎找到答案。Python生态环境十分良好,初学者遇到的99.9%的问题在网上都有现成的解决办法。如果是思路上的问题同样可以通过网络进行查找,也可以寻求他人的帮助。
另外,在我们的学习过程中,刚开始我们知道怎么用就行了,理解原理固然更好,但千万不要钻牛角尖。对数据分析岗位来说,主要是要能了解工具的具体功能,当有需求、有想法时可以知道使用哪种工具可以更好更快的实现。
最后,如果在工作中,上网复制一段代码,理解后为我所用,这个是可以的,毕竟我们要保证生产力。但我们在刚开始学习的过程中,尽量不要去复制代码,学习编程最大的技巧就是多敲代码,敲的这个过程中,会出错,出错了就会去调试,调试的过程中会去思考,在调试和思考的过程中就是在不知不觉的进步。
4.5.2、书籍推荐
网络上Python的教学课程、书籍、公众号众多,大家可以自行寻找,这里只推荐两本书籍,如果有需要其他的学习资料,也可以直接找我要。
入门书籍:简明Python教程
数据分析书籍:利用Python进行数据分析