- 深度学习入门:基于Python的理论与实现
- (日)斋藤康毅
- 1899字
- 2024-08-06 10:59:31
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 键。