A.9 Python 基础知识

A.9 Python 基础知识

本小节将向没有用过 Python 的读者介绍一下 Python 程序的基本语法。不过本书不是 Python 的入门书籍,这里只涉及最小范围的内容,目的是能够让大家理解在第 5 章实现的 Python 程序。因此这里不会介绍所有的知识,如果读者想进一步加深理解,推荐大家上网查找资料或者阅读 Python 的入门书籍。

下面我们就一起通过实践来学习 Python 吧。首先请在终端或命令提示符中输入 Python(参考附录 A.8),启动交互式环境。

A.9.1 数值与字符串

Python 可以处理整数和浮点数,可以通过“+”“-”“*”“/”对它们进行四则运算。此外,还可以通过 % 求余数,通过“**”进行幂运算。

■ 以下全部通过 Python 交互式环境执行(示例代码:A-9-1)

>>> 0.5 ‐‐‐‐‐‐‐‐ 不要输入“>>>”,输入该符号右侧的部分。余同。 0.5 >>> 1 + 2 3 >>> 3 - 4 -1 >>> 5 * 6 30 >>> 7 / 8 0.875 >>> 10 % 9 1 >>> 3 ** 3 27

Python 还支持指数记数法,写法如下。

■ 示例代码:A-9-2

>>> # 下面这行与“1.0 * 10 的-3 次幂”的含义相同。以# 开始的行是注释。 >>> 1e-3 0.001 >>> >>> # 下面这行与“1.0 * 10 的3 次幂”的含义相同。 >>> 1e3 1000.0

这里的代码中出现了 # 号,Python 把 # 之后的代码视为注释。Python 会忽略注释,所以注释不会对程序产生影响。对程序中不易理解的部分的意图和背景等进行说明时可以使用它。本书在很多示例代码中加入了注释,不过大家在使用交互式环境时一般不需要输入注释。

另外,Python 会将文字用单引号或者双引号围起来表示字符串。我们可以使用“+”和“*”运算符进行字符串的连接以及重复输出。

■ 示例代码:A-9-3

>>> 'python' 'python' >>> "python" 'python' >>> 'python' + ' 入门' 'python 入门' >>> 'python' * 3 'pythonpythonpython' A.9.2 变量

在使用数值或字符串时给它们起好名称,之后就可以通过名称再次使用它们。这样的结构称为变量。可以像下面的代码一样,将数值或字符串代入到变量里使用。变量之间的运算结果可以再次赋值给变量保存,大家可以在需要的时候利用这个特性。

■ 示例代码:A-9-4

>>> # 将数值赋值给变量,求它们的和 >>> a = 1 >>> b = 2 >>> a + b 3 >>> # 将a 与b 的和进一步赋值给变量c >>> c = a + b >>> >>> # 利用变量重复输出字符串 >>> d = 'python' >>> d * c 'pythonpythonpython'

另外,变量的四则运算和省略写法如下所示。这些能让程序看起来简洁的写法很常用,请一并记住。

■ 示例代码:A-9-5

>>> a = 1 >>> >>> # 与a = a + 2 含义相同 >>> a += 2 >>> >>> # 与a = a - 1 含义相同 >>> a -= 1 >>> >>> # 与a = a * 3 含义相同 >>> a *= 3 >>> >>> # 与a = a / 3 含义相同 >>> a /= 3 A.9.3 真假值与比较运算符

Python 中有表示真假值的值 True 和 False。

True 表示真、False 表示假,这两个值也被叫作布尔值,后面要介绍的流程控制语法也会用到这两个值,所以一定要记住它们。

■ 示例代码:A-9-6

>>> # 1 与1 相等吗? >>> 1 == 1 True >>> >>> # 1 与2 相等吗? >>> 1 == 2 False

像这样比较两个值之后的结果是否正确就由真假值来表示。上述示例中出现的“==”称为比较运算符,用于检查符号左侧和右侧的值是否相等。Python 的比较运算符包括“==”“!=”“>”“>=”“<”“<=”,它们分别有以下含义,请一边阅读注释一边了解其含义。

■ 示例代码:A-9-7

>>> # python2 与python3 不等吗? >>> 'python2' != 'python3' True >>> >>> # 2 比3 更大? >>> 2 > 3 False >>> >>> # 2 大于1 吗? >>> 2 >= 1 True >>> >>> # 变量之间也可以比较 >>> a = 1 >>> b = 2 >>> # a 比b 小吗? >>> a < b True >>> >>> # b 小于2 吗? >>> b <= 2 True

我们还可以对真假值应用 and 和 or 运算符。

and 只有在两个真假值都为 True 的情况下,结果才为 True。

or 在两个真假值中任意一个为 True 的情况下,结果为 True。我们通过例子来看一看实际结果。

■ 示例代码:A-9-8

>>> a = 5 >>> >>> # a 比1 大,而且a 比10 小 >>> 1 < a and a < 10 True >>> >>> # a 比3 大,或者a 比1 小 >>> 3 < a or a < 1 True A.9.4 列表

Python 中有一个称为列表的数据结构,使用该结构不仅能处理一个值,而且能够统一处理多个值。有些语言会称该数据结构为数组。后面介绍流程控制时也会用到列表,所以在这里我们来熟悉一下基本的列表操作方法。

■ 示例代码:A-9-9

>>> # 创建列表 >>> a = [1, 2, 3, 4, 5, 6] >>> >>> # 访问列表元素 >>> # (注意:索引是从0 开始的) >>> a[0] 1 >>> a[1] 2 >>> >>> # 在索引上加入负号,可以从后面访问元素 >>> a[-1] 6 >>> a[-2] 5 >>> >>> # 有一种使用“:”的被称为切片的方便写法 >>> # 获取指定范围的值 >>> a[1:3] [2, 3] >>> >>> # 获取从第2 个值开始到最后的所有值 >>> a[2:] [3, 4, 5, 6] >>> >>> # 获取从开始到第3 个值的所有值 >>> a[:3] [1, 2, 3] A.9.5 流程控制

Python 程序基本上是按照书写顺序从上到下执行的,但我们也可以通过接下来要介绍的流程控制来实现条件分支和循环。

使用流程控制时,我们以代码块为单位编写代码。其他编程语言多使用 {…} 或 begin…end 来表示代码块的开始和结束,而 Python 使用缩进来表示代码块。虽然 tab 制表符和半角空格都可以表示缩进,但是我建议大家尽可能避免使用 tab 制表符,而是使用 4 个半角空格。与其他语言相比,Python 中的缩进非常重要,缩进未对齐会导致错误,大家要小心。

首先,我们通过 if 语句使用条件分支。如果在 if 之后的真假值是 True,那么这句后面的代码块会被执行,如果是 False,那么 Python 解释器会去看下一个 elif 的真假值。假如这里也是 False,那么最终 else 下面的代码块会被执行。我们来实际地确认一下。

■ 示例代码:A-9-10

>>> a = 10 >>> >>> # 根据变量值能否被3 或者5 整除,打印不同的消息 >>> if a % 3 == 0: ... print(' 能被3 整除的数') ... elif a % 5 == 0: ... print(' 能被5 整除的数') ... else: ... print(' 既不能被3,也不能被5 整除的数') ... ‐‐‐‐‐‐‐‐ 在这里按“Enter”键 能被5 整除的数

接下来,我们通过 for 语句进行循环处理。将列表传给 for,for 就会从列表中依次取出元素,并开始循环处理。我们来实际地确认一下。

■ 示例代码:A-9-11

>>> a = [1, 2, 3, 4, 5, 6] >>> >>> # 依次取出列表中元素并赋值给变量i,然后输出值 >>> for i in a: ... print(i) ... ‐‐‐‐‐‐‐‐ 在这里按“Enter”键 1 2 3 4 5 6

此外,还有一种循环处理的语法:while 语句。只要 while 后面的表达式为 True,Python 解释器就会开始循环处理。

■ 示例代码:A-9-12

>>> a = 1 >>> >>> # 只要a 不大于5,进行循环处理 >>> while a <= 5: ... print(a) ... a += 1 ... ‐‐‐‐‐‐‐‐ 在这里按“Enter”键 1 2 3 4 5 A.9.6 函数

最后我们来学习函数。在 Python 中,只要把一段处理定义为函数,之后就可以在需要的时候调用它。我们使用 def 来定义函数,在 def 行下面的代码块就是函数的处理。与流程控制一样,函数中也用缩进来表示代码块,所以请注意缩进的对齐。

■ 示例代码:A-9-13

>>> def hello_python(): ... print('Hello Python') ... ‐‐‐‐‐‐‐‐ 在这里按“Enter”键 >>> hello_python() Hello Python >>> >>> # 函数也可以接受参数并返回值 >>> def sum(a, b): ... return a + b ... ‐‐‐‐‐‐‐‐ 在这里按“Enter”键 >>> sum(1, 2) 3

上一章 封面 书架 下一章