第一章 Python脚本概述
在学习本书前,你应该了解一些 Python 编程的基础知识,比如基础语法、变量类型、元组数据类型、列表字典、函数、字符串和方法。在python.org/downloads/上有3.7.2和2.7.15两个版本可供下载。本书中我们将使用3.7这一版本来作为代表示例和包的安装。
本章的示例和源代码可通过 GitHub 仓库进行获取。
为什么选择Python?
Python有非常丰富的开源库用于数据分析工具、网站框架、测试等等。Python是一种可在不同平台上使用的编程语言(Windows, Mac, Linux和Linux嵌入式硬件,如树莓派Raspberry Pi)。它也用于开发桌面应用和网页应用。
开发人员如果使用Python可以编写更少行数的代码。原型制作非常快速,因为在解释器系统中运行。Python可被看成是面向对象、面向过程或函数式编程。
Python可以完成各种任务,比如创建网页应用。它和软件一起使用来创建工作流,它连接数据库系统、处理文件、处理大数据并执行复杂数学运算。
Python语法与其它编程语言的对比
Python编写的代码可读性很强,因为它和英语本身非常相近。要完成一个命令,Python使用新的一行来完成。
Python有一个很棒的特性:缩进。使用缩进我们可以定义决策语句作用域,for循环和while循环、函数和类。
Python安装
这一部分中我们将学习在不同平台上Python的安装,比如Linux和Windows。
Linux平台上的安装
大部分Linux发行版本都默认安装了Python 2。有些则直接包含了Python 3。
译者注: 目前大部分 CentOS 中默认安装的是 Python 2,而 Ubuntu 中则内置了 Python 3
要在Debian系Linux系统中安装Python 3,在命令行终端中可运行如下命令:
sudo apt install python3
要在CentOS 系统中安装Python 3,在命令行终端中可运行如下命令:
sudo yum install python3
如无法使用以上命令安装Python,请从官方网站上下载Python并按照指示进行安装。
译者注: 本博客有一篇如何安装Python3.7也可供参考
Windows平台上的安装
在Microsoft Windows上安装Python,我们需要从python.org上 下载可执行安装包并执行安装。从官网下载页面下载python.exe文件并选择想要在电脑上安装的Python版本。然后双击所下载的 exe 文件来安装Python。有安装引导页面中,有一个Add Python to the path的复选框,勾选并按照提示一步一步的安装Python 3。
Pip安装以及使用pip安装Python包
在 Linux 中安装pip命令如下:
sudo apt install python-pip # 安装 Python 2的 pip
sudo apt install python3-pip # 安装 Python 3的 pip
译者注: 以上为 Ubuntu 中的命令,原书作者使用的均为 Ubuntu,CentOS 中将 apt 修改为 yum 即可
Windows中, 使用如下命令安装:
python -m pip install pip
Mac上的安装
要安装 Python 3,我们要在系统中安装brew。运行如下命令来在系统中安装brew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
通过运行以上命令,brew就安装好了。现在使用brew来安装 Python 3:
brew install python3
安装Jupyter notebook
要安装Jupyter Notebook,先下载Anaconda。
安装所下载的Anaconda版本,按照向导中的指示进行安装即可。
使用pip安装Jupyter:
pip install jupyter
在 Linux 中,pip install jupyter安装的是Python 2 的Jupyter。如果想要安装Python 3 的Jupyter,运行如下命令:
pip3 install jupyter
安装和使用虚拟环境
下面我们就来看如何安装虚拟环境以及如何进行激活。
在Linux中安装虚拟环境,执行步骤如下:
1、首先检查是否安装了pip。我们来安装Python 3的pip sudo apt install python3-pip
2、使用pip3安装虚拟环境:
sudo pip3 install virtualenv
3、现在我们来创建虚拟环境。你可以选择任意名称,这里我们使用pythonenv:
virtualenv pythonenv
4、激活虚拟环境:
source pythonenv/bin/activate
5、在完成操作之后,还可通过以下命令来关闭virtualenv:
deactivate
在Windows中, 运行pip install virtualenv命令来安装虚拟环境。virtualenv的安装步骤与Linux相同。
译者注: 在安装了virtualenv之后,还可安装 Virtualenv Wrapper来更方便管理虚拟环境,关于环境搭建还可参见本博客Django环境搭建及开发
安装Geany和PyCharm
通过https://www.geany.org/download/releases 下载Geany并下载所需的二进制文件。根据指示来进行安装。
通过https://www.jetbrains.com/pycharm/download/ 下载PyCharm并根据指示来进行安装。
Python 解释器
Python是一种解释性语言。有一个称为Python解释器或Python shell的交互式终端。这个shell可供我们无需创建脚本来逐行执行程序。
我们可以在这个Python交互式终端中访问Python的内置函数和库、安装模块和命令执行历史。这个终端为我们提供了研究Python的机会。你可以将准备好的代码拷贝到脚本中。
Python和Bash脚本的区别
这一部分中,我们将学习Python和Bash脚本的区别。它们的区别如下:
- Python是一种脚本语言,而Bash是一种用于进入和执行命令的shell
- 使用Python更易于处理更大的程序
- Python中大部分的事可通过导入模块来使用一行代码调用函数
开启交互终端
我们可以在已安装了Python的电脑上访问Python交互终端。运行如下命令来开启Python交互终端:
$ python
译者注: 在 Linux 中#号提示符为 root 用户,其它用户为$
以上命令将启动默认的Python交互终端。
Linux中如果在终端中写入 python,开启的是python2.7的终端。如果你想要启动python3的终端,则在终端中输入python3并按下 Enter 键。
在Windows中,我们可以在Command命令行中输入 python,就会在终端中启动所下载的Python版本。
使用Python交互终端编写脚本
Python交互终端的起始提示符为>>>。在该终端中可输入Python命令,在>>>之后进行编写。如以下截图所示:
现在,我们来看如何为变量赋值,示例如下:
>>> name = 'John'
这时我们为name变量赋了一个字符串值John。按下Enter进入了一个以>>>提示符开头的新行:
>>> name = 'John'
>>>
现在,我们来看一个为变量赋值的示例并执行数学运算来获取值:
>>> num1 = 5000
>>> num2 = 3500 # 可在一行中进行赋值num1, num2 = 5000, 3500
>>> num3 = num1 + num2
>>> print(num3)
8500
>>> num4 = num3 - 2575
>>> print(num4)
5925
>>>
这里我们对不同的变量进行赋值,对两个变量进行相加,并将其和存储在了第三个变量中,还在终端(Terminal)中打印出了和。然后,我们对结果变量进行了减法运算,将输出存到了第四个变量中。接着我们将差在终端中进行了打印。这告诉我们可以使用 Python 解释器作为计算器来进行使用。
>>> 509 / 22
23.136363636363637
>>>
以上,我们执行了除法运算。509除以22并得到了商23.136363636363637。
多行模式
在Python解释器中编写多行代码时(比如 if 语句、 for循环、while 循环和函数),解释器会使用三个点(…) 作为二级提示符来延续代码行。要退出这些行,我们需要连续按下两次 Enter 键。我们来看看如下的示例:
>>> val1 = 2500
>>> val2 = 2400
>>> if val1 > val2:
... print("val1大于val2")
... else:
... print("val2大于val1")
...
val1大于val2
>>>
本例中,我们对两个变量val1和val2进行了整数值的赋值,并检查val1是否大于val2。上例中val1大于val2,因此 if 代码块中的语句执行了打印。注意 if 和 else 代码块中的语句需要进行缩进。如果不使用缩进,就会得到如下报错:
>>> if val1 > val2:
... print("val1大于val2")
File "<stdin>", line 2
print("val1大于val2")
^
IndentationError: expected an indented block