1.4 变量
另一个你可能熟悉的概念是变量(variable)。如果代数对你来说不过是遥远的记忆,也不用担心,因为Python中的变量理解起来很容易。变量是表示(或指向)特定值的名称。例如,你可能想使用名称x来表示3,为此执行如下代码:
这称为赋值(assignment),我们将值3赋给了变量x。换而言之,就是将变量x与值(或对象)3关联起来。给变量赋值后,就可在表达式中使用它。
6
不同于其他一些语言,使用Python变量前必须给它赋值,因为Python变量没有默认值。
注意:在Python中,名称(标识符)只能由字母、数字和下划线(_)构成,且不能以数字打头。因此Plan9是合法的变量名,而9Plan不是。
1.5 语句
前面使用的几乎都是表达式,相当于菜谱中的原料,但语句(菜谱中的操作说明)是什么样的呢?
实际上,刚才说的不完全正确,因为前面已经介绍过两种语句了:print语句和赋值语句。语句和表达式有何不同呢?你可以这样想:表达式是一些东西,而语句做一些事情。例如,2 * 2的结果是4,而print(2 * 2)打印4。表达式和语句的行为很像,因此它们之间的界线可能并非那么明确。
4
>>> print(2 * 2)
4
在交互式解释器中执行时,这两段代码的结果没有任何差别,但这是因为解释器总是将表达式的值打印出来(打印的是repr表示的内容,详情请参阅1.10.3节)。然而,在Python中,情况并非都是这样的。本章后面将介绍如何创建无需交互式解释器就能运行的程序。仅将诸如2 * 2等表达式放在程序中不会有任何作用①,但在程序中包含print(2 * 2)将打印结果4。
注意:print实际上是一个函数(这将在本章后面更详细地介绍),因此前面说的print语句其实是函数调用。在Python 2.x中,print是一条语句,无需将要打印的内容作为参数放在圆括号内。
涉及赋值时,语句和表达式的差别更明显:鉴于赋值语句不是表达式,它们没有可供交互式解释器打印的值。
执行赋值语句后,交互式解释器只是再次显示提示符,但发生了一些变化:有一个名为x的新变量,与值3相关联。可以说,这是所有语句的一个根本特征:执行修改操作。例如,赋值语句改变变量,而print语句改变屏幕的外观。
无论在什么编程语言中,赋值语句都可能是最重要的语句,虽然这一点你可能难以马上明白。变量就像是临时“存储区”(类似于菜谱中的锅碗瓢盆)②,其真正威力在于无需知道它们存储的值就能操作它们。
例如,即便根本不知道x和y是什么,你也知道x * y的结果为x和y的乘积。因此,编写程序时,你能以各种方式使用变量,而无需知道程序运行时它们将存储(指向)的值。
领取专属 10元无门槛券
私享最新 技术干货