
作者:尹华杰 博士 & 孙玲 博士
来源:链讲堂
ID:gh_ca5f0599df5e
背景
Python是一种开源的通用编程语言,1980年代后期由Guido van Rossum创建。IPython于2001年由Fernando Perez创建,旨在为Python平台提供一个方便的命令行界面。2011年IPython进一步引入了Notebook。Notebook可在浏览器上运行,为科学计算提供了一个理想的界面,集文本、代码、图像、公式的展现于一体。人们可以在创建的Notebook页面中进行丰富的操作。同时,Notebook提供了一系列的文档转换工具:Markdown、HTML、PDF等等。除了科学计算,Notebook还被用于撰写软件文档、书、文章、课件等等。除了Python,Notebook也支持R、Julia、Ruby等语言。源于Notebook的通用性,IPython的开发者们在2014年给项目起了一个新的名字:Jupyter。Jupyter是一个多语言记事本平台,可以和多种代码执行内核一起工作,而IPython就是Jupyter Notebook的Python内核。
通过安装Anaconda来解决Python和Jupyter Notebook的安装问题
Anaconda是一个开源的Python和R语言的发行版本,用于计算科学(数据科学、机器学习、大数据处理和预测分析)。Anaconda拥有8000多个开源的数据科学和机器学习软件包,可以跨平台使用(Windows、Linux和MacOS)。Anaconda附带包管理器conda,可以有效地在计算机上安装和管理这些包。
Python的安装方式有很多,这里我们通过安装Anaconda来实现。Anaconda自带Jupyter Notebook。当然,电脑需要安装Python之后才能运行Jupyter Notebook。
下载Anaconda
Anaconda可以从它的网页(https://www.anaconda.com/products/distribution )下载合适的版本。有三点需要注意:1. 电脑的操作系统(Windows,MacOS还是Linux?);2. 32-bit还是64-bit?(通常情况下选择64-bit,便于处理大型的数据集);3. Python的版本。根据提示在电脑上安装Anaconda
安装测试
以Mac为例,在Anaconda安装完成后,打开终端,输入python,打开Python控制台,也就是Python的交互模式,Python提示符为>>>,之后可输入命令行。输入python后,你可以看到类似下面的内容:

启动Jupyter Notebook
打开OS终端,输入jupyter notebook,即可打开Jupyter服务器,并在你的浏览器中打开一个新的窗口,即记事本仪表盘(Notebook dashboard),如下图所示:

关闭Jupyter服务器的话,只需在之前打开的OS终端,同时按下Ctrl+C,输入y,进一步确认即可。
点击上图中右侧的“新建”,选择“Python 3”,创建“记事本”,进入记事本用户界面,如下图所示:

Python基础
Hello world
在单元格中输入如下代码:
print('Hello world!')
同时按Shift + Enter键,输出:Hello world!。如下图所示:

计算器
Python可直接作为计算器使用。在单元格中录入表达式,它会给出返回值。 运算符包括:*(乘法),/(除法),+(加法),-(减法),**(求幂)等等。

变量
变量是编程语言中的基本概念,一个变量包含一个名字和一个值。如下是创建一个变量:

变量可以进一步参与计算:

我们也可以同时定义几个变量:

变量可以是不同的数据类型:如整数、小数、字符串和布尔。

注意:Python使用#进行注释,在代码中添加注释便于阅读和理解。
列表
列表(List)是Python中非常重要的内置数据类型。列表包含一系列元素,所有的元素被包含在一对方括号中,元素之间用逗号隔开。列表被创建之后,可以执行添加、删除、修改操作。这里我们创造一个数字列表:

内置函数len()返回列表所含元素个数:

内置函数sum()可计算列表元素之和:

我们可以提取列表中的元素:

注意:列表中的每个元素均会分配一个数字,用以记录位置,我们称之为索引 (Indexes) ,索引值从0开始,依次往后计数。索引值从后往前的话,依次是-1,-2……同样的语法可以用来修改列表元素:

我们可以通过切片操作(slice)从一个列表中获取子列表:

这里,1:3代表一个切片,从元素1(包括)到元素3(不包括),从而得到一个子列表包含原列表中第二和第三个元素。
元组、字典、集合
Python中的常用数据结构还有元组(Tuple)、字典(Dictionary)、集合(Set)。元组与列表类似,不同之处在于元组被创建后就不能对其进行修改。

字典包含键值对,可修改。

集合是一个无序的不重复元素序列,可修改。集合里面的元素不能用索引或键值遍历。

循环
我们可以使用for循环显示列表中的所有元素:

注意:
for num in my_list表示一个临时变量num被创建,它在每一次执行中包含列表中的一个元素值。
for语句最后以:结尾。
print语句前有四个空格,称为缩进。Python支持对列表中的所有元素进行运算操作:

一个新的列表被创建,它含有原列表中所有元素的平方值。
条件性分支
有时我们需要根据某些条件对数据进行处理。比如我们需要显示列表中的偶数,我们可以输入如下的代码:

注意:
if语句紧跟布尔表达式。 如果m和n是两个整数,则模操作数m % n返回m除以n的余数。这里,num % 2的结果为0,是偶数,结果为1,是奇数。 判断相等用双等号 == 表示,而我们在创建变量时使用的赋值运算符是 = 。if语句同样以:结尾。 在Python中,我们可以选择性地提取列表中具备某种特性的数据。以下代码用于创建一个子列表,包含原列表中的偶数元素。

函数
Python中函数的应用非常广泛,上文中已经提到多个函数,比如print()、sum()、len() 函数等等,这些都是Python的内置函数,可以直接使用。 除了内置函数外,Python还支持自定义函数,即将一段可重复使用的代码定义成函数。以下代码定义了一个函数,判断输入的整数是否为偶数。

注意:
函数代码块以def关键词开头,后接函数名。
函数名后跟圆括号(),括号中一个或多个变量名称称为参数。这些是函数的输入。这里是一个参数,命名为number。
函数内容以冒号起始,并且缩进。
函数的返回值用return语句返回。
函数定义完之后,可以不断调用。





