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(字符串)类型。另外,“类型”和“类”这两个词有时用作相同的意思。这里,对于输出结果 ,可以将其解释成“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 键。
Python 使用空白字符表示缩进。一般而言,每缩进一次,使用 4 个空白字符。