1.3 Python解释器
完成 Python 的安装后,要先确认一下 Python 的版本。打开终端(Windows 中的命令行窗口),输入 python --version 命令,该命令会输出已经安装的 Python 的版本信息。
$ python --version
Python 3.4.1 :: Anaconda 2.1.0 (x86_64)
如上所示,显示了 Python 3.4.1(根据实际安装的版本,版本号可能不同),说明已正确安装了 Python 3.x 。接着输入 python ,启动 Python 解释器。
$ python
Python 3.4.1 |Anaconda 2.1.0 (x86_64)| (default, Sep 10 2014, 17:24:09)
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
Python 解释器也被称为对话模式,用户能够以和 Python 对话的方式进行编程。比如,当用户询问1 + 2 等于几?的时候,Python 解释器会回答3,所谓对话模式,就是指这样的交互。现在,我们实际输入一下看看。
>>> 1 + 2
3
Python 解释器可以像这样进行对话式(交互式)的编程。下面,我们使用这个对话模式,来看几个简单的 Python 编程的例子。
1.3.1 算术计算
加法或乘法等算术计算,可按如下方式进行。
>>> 1 - 2
-1
>>> 4 * 5
20
>>> 7 / 5
1.4
>>> 3 ** 2
9
* 表示乘法,/ 表示除法,** 表示乘方(3**2 是 3 的 2 次方)。另外,在 Python 2.x 中,整数除以整数的结果是整数,比如,7 ÷ 5 的结果是 1。但在 Python 3.x 中,整数除以整数的结果是小数(浮点数)。
1.3.2 数据类型
编程中有数据类型 (data type)这一概念。数据类型表示数据的性质,有整数、小数、字符串等类型。Python 中的 type() 函数可以用来查看数据类型。
>>> type(10)
<class 'int'>
>>> type(2.718)
<class 'float'>
>>> type("hello")
<class 'str'>
根据上面的结果可知,10 是 int 类型(整型),2.718 是 float 类型(浮点型),"hello" 是 str (字符串)类型。另外,类型和类这两个词有时用作相同的意思。这里,对于输出结果 <class 'int'> ,可以将其解释成10 是 int 类(类型)。
1.3.3 变量
可以使用 x 或 y 等字母定义变量 (variable)。此外,可以使用变量进行计算,也可以对变量赋值。
>>> x = 10
# 初始化
>>> print(x)
# 输出x
10
>>> x = 100
# 赋值
>>> print(x)
100
>>> y = 3.14
>>> x * y
314.0
>>> type(x * y)
<class 'float'>
Python 是属于动态类型语言的编程语言,所谓动态,是指变量的类型是根据情况自动决定的。在上面的例子中,用户并没有明确指出x 的类型是 int (整型),是 Python 根据 x 被初始化为 10,从而判断出 x 的类型为 int 的。此外,我们也可以看到,整数和小数相乘的结果是小数(数据类型的自动转换)。另外,# 是注释的意思,它后面的文字会被 Python 忽略。
1.3.4 列表
除了单一的数值,还可以用列表(数组)汇总数据。
>>> a = [1, 2, 3, 4, 5]
# 生成列表
>>> print(a)
# 输出列表的内容
[1, 2, 3, 4, 5]
>>> len(a)
# 获取列表的长度
5
>>> a[0]
# 访问第一个元素的值
1
>>> a[4]
5
>>> a[4] = 99
# 赋值
>>> print(a)
[1, 2, 3, 4, 99]
元素的访问是通过 a[0] 这样的方式进行的。[] 中的数字称为索引(下标),索引从 0 开始(索引 0 对应第一个元素)。此外,Python 的列表提供了切片 (slicing)这一便捷的标记法。使用切片不仅可以访问某个值,还可以访问列表的子列表(部分列表)。
>>> print(a)
[1, 2, 3, 4, 99]
>>> a[0:2]
# 获取索引为0到2(不包括2!)的元素
[1, 2]
>>> a[1:]
# 获取从索引为1的元素到最后一个元素
[2, 3, 4, 99]
>>> a[:3]
# 获取从第一个元素到索引为3(不包括3!)的元素
[1, 2, 3]
>>> a[:-1]
# 获取从第一个元素到最后一个元素的前一个元素之间的元素
[1, 2, 3, 4]
>>> a[:-2]
# 获取从第一个元素到最后一个元素的前二个元素之间的元素
[1, 2, 3]
进行列表的切片时,需要写成 a[0:2] 这样的形式。a[0:2] 用于取出从索引为 0 的元素到索引为 2 的元素的前一个元素之间的元素。另外,索引 -1 对应最后一个元素,-2 对应最后一个元素的前一个元素。
1.3.5 字典
列表根据索引,按照 0, 1, 2, ... 的顺序存储值,而字典则以键值对的形式存储数据。字典就像《新华字典》那样,将单词和它的含义对应着存储起来。
>>> me = {'height':180}
# 生成字典
>>> me['height']
# 访问元素
180
>>> me['weight'] = 70
# 添加新元素
>>> print(me)
{'height': 180, 'weight': 70}
1.3.6 布尔型
Python 中有 bool 型。bool 型取 True 或 False 中的一个值。针对 bool 型的运算符包括 and 、or 和 not (针对数值的运算符有 + 、- 、* 、/ 等,根据不同的数据类型使用不同的运算符)。
>>> hungry = True
# 饿了?
>>> sleepy = False
# 困了?
>>> type(hungry)
<class 'bool'>
>>> not hungry
False
>>> hungry and sleepy
# 饿并且困
False
>>> hungry or sleepy
# 饿或者困
True
1.3.7 if 语句
根据不同的条件选择不同的处理分支时可以使用 if/else 语句。
>>> hungry = True
>>> if hungry:
... print("I'm hungry")
...
I'm hungry
>>> hungry = False
>>> if hungry:
... print("I'm hungry")
# 使用空白字符进行缩进
... else:
... print("I'm not hungry")
... print("I'm sleepy")
...
I'm not hungry
I'm sleepy
Python 中的空白字符具有重要的意义。上面的 if 语句中,if hungry: 下面的语句开头有 4 个空白字符。它是缩进的意思,表示当前面的条件(if hungry )成立时,此处的代码会被执行。这个缩进也可以用 tab 表示,Python 中推荐使用空白字符。
Python 使用空白字符表示缩进。一般而言,每缩进一次,使用 4 个空白字符。
1.3.8 for 语句
进行循环处理时可以使用 for 语句。
>>> for i in [1, 2, 3]:
... print(i)
...
1
2
3
这是输出列表 [1, 2, 3] 中的元素的例子。使用 for … in … : 语句结构,
可以按顺序访问列表等数据集合中的各个元素。
1.3.9 函数
可以将一连串的处理定义成函数 (function)。
>>> def hello():
... print("Hello World!")
...
>>> hello()
Hello World!
此外,函数可以取参数。
>>> def hello(object):
... print("Hello " + object + "!")
...
>>> hello("cat")
Hello cat!
另外,字符串的拼接可以使用 + 。
关闭 Python 解释器时,Linux 或 Mac OS X 的情况下输入 Ctrl-D(按住 Ctrl,再按 D 键);Windows 的情况下输入 Ctrl-Z,然后按 Enter 键。