第1章 Python基础
Python 编程语言有许多语法结构、标准库函数和交互式开发环境功能。好在,你可以忽略大多数内容。你只需要学习部分内容,就能编写一些方便的小程序。但在动手之前,你必须学习一些基本编程概念。就像魔法师培训,你可能认为这些概念既深奥又啰嗦,但有了一些知识和实践,你就能像魔法师一样指挥你的计算机,完成难以置信的事情。本章有几个例子,我们鼓励你在交互式环境中输入它们。交互式环境让你每次执行一条Python 指令,并立即显示结果。使用交互式环境对于了解基本Python 指令的行为是很好的,所以你在阅读时要试一下。做过的事比仅仅读过的内容,更令人印象深刻。
1.1 在交互式环境中输入表达式
启动IDLE 就运行了交互式环境,这是和Python 一起安装的。在Windows 上,
打开“开始”菜单,选择“All ProgramsPython 3.3”,然后选择“IDLE(Python GUI)”。
在OS X 上,选择“ApplicationsMacPython 3.3IDLE”。在Ubuntu 上,打开新的
终端窗口并输入idle3。
一个窗口会出现,包含>>>提示符,这就是交互式环境。在提示符后输入2 + 2,
让Python 做一些简单的算术。
>>> 2 + 2
4
IDLE 窗口现在应该显示下面这样的文本:
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:06:53) [MSC v.1600 64 bit
(AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> 2 + 2
4
>>>
在Python 中,2 + 2 称为“表达式”,它是语言中最基本的编程结构。表达式包
含“值”(例如2)和“操作符”(例如+),并且总是可以求值(也就是归约)为单
个值。这意味着在Python 代码中,所有使用表达式的地方,也可以使用一个值。
在前面的例子中,2 + 2 被求值为单个值4。没有操作符的单个值也被认为是一
个表达式,尽管它求值的结果就是它自己,像下面这样:
>>> 2
2
错误没关系!
如果程序包含计算机不能理解的代码,就会崩溃,这将导致Python 显示错
误信息。错误信息并不会破坏你的计算机,所以不要害怕犯错误。“崩溃”只是
意味着程序意外地停止执行。
如果你希望对一条错误信息了解更多,可以在网上查找这条信息的准确文本,
找到关于这个错误的更多内容。也可以查看http://nostarch.com/automatestuff/,这里
有常见的Python 错误信息和含义的列表。
Python 表达式中也可以使用大量其他操作符。例如,表 1-1 列出了Python 的所
有数学操作符。
表1-1 数学操作符,优先级从高到低
数学操作符的操作顺序(也称为“优先级”)与数学中类似。**操作符首先求
值,接下来是*、/、//和%操作符,从左到右。+和-操作符最后求值,也是从左到右。
如果需要,可以用括号来改变通常的优先级。在交互式环境中输入下列表达式:
>>> 2 + 3 * 6
20
>>> (2 + 3) * 6
30
>>> 48565878 * 578453
28093077826734
>>> 2 ** 8
256
>>> 23 / 7
3.2857142857142856
>>> 23 // 7
3
>>> 23 % 7
2
>>> 2 + 2
4
>>> (5 - 1) * ((7 + 1) / (3 - 1))
16.0
在每个例子中,作为程序员,你必须输入表达式,但Python 完成较难的工作,
将它求值为单个值。Python 将继续求值表达式的各个部分,直到它成为单个值,如
图1-1 所示。
图1-1 表达式求值将它归约为单个值
将操作符和值放在一起构成表达式的这些规则,是 Python 编程语言的基本部
分,就像帮助我们沟通的语法规则一样。下面是例子:
This is a grammatically correct English sentence.
This grammatically is sentence not English correct a.
第二行很难解释,因为它不符合英语的规则。类似地,如果你输入错误的 Python
指令,Python 也不能理解,就会显示出错误信息,像下面这样:
>>> 5 +
File "<stdin>", line 1
5 +
^
SyntaxError: invalid syntax
>>> 42 + 5 + * 2
File "<stdin>", line 1
42 + 5 + * 2
你总是可以在交互式环境中输入一条指令,检查它是否能工作。不要担心会弄
坏计算机:最坏的情况就是Python 显示出错信息。专业的软件开发者在编写代码时,
常常会遇到错误信息。
1.2 整型、浮点型和字符串数据类型
记住,表达式是值和操作符的组合,它们可以通过求值成为单个值。“数据类
型”是一类值,每个值都只属于一种数据类型。表1-2 列出了Python 中最常见的数
据类型。例如,值-2 和30 属于“整型”值。整型(或int)数据类型表明值是整数。
带有小数点的数,如3.14,称为“浮点型”(或float)。请注意,尽管42 是一个整
型,但42.0 是一个浮点型。
Python 程序也可以有文本值,称为“字符串”,或strs(发音为“stirs”)。总是
用单引号(')包围住字符串(例如'Hello'或'Goodbye cruel world!'),这样Python 就
知道字符串的开始和结束。甚至可以有没有字符的字符串,称为“空字符串”。第4
章更详细地解释了字符串。
如果你看到错误信息SyntaxError: EOL while scanning string literal,可能是忘记
了字符串末尾的单引号,如下面的例子所示:
>>> 'Hello world!
SyntaxError: EOL while scanning string literal
1.3 字符串连接和复制
根据操作符之后的值的数据类型,操作符的含义可能会改变。例如,在操作两
个整型或浮点型值时,+是相加操作符。但是,在用于两个字符串时,它将字符串
连接起来,成为“字符串连接”操作符。在交互式环境中输入以下内容:
>>> 'Alice' + 'Bob'
'AliceBob'