我们编程的时候通常会希望保存我们的表达式的运算结果,这样我们就可以在以后使用它。我们把值存在变量中。
你可以把变量想象成可以装值的箱子。我们通过赋值运算符“=”来给变量赋值。例如,要把值15保存到名为“spam”的变量,只需输入spam = 15。 >>> spam = 15 >>>
图2-4: 变量就像可以装值的箱子
你可以把变量想象成一个装有15这个值的箱子(如图2-4所示)。变量名“spam”就像箱子上的标签(这样我们就可以将它和其他变量区分开来),而保存其中的值就像箱子里的便签条。
你按完回车后除了空行不会看到任何反应。除非你看到了错误信息,否则你就可以认为那条指令已经正确执行了。另一个>>>提示符会出现,这是提示你输入下一条指令的。
这条语句(被称为赋值语句)创建了变量spam并把值15保存到了变量中。与表达式不同的是语句是没有运算值的指令,这也是为什么交互界面中没有在下一行显示任何值的原因。
区分哪些指令是表达式,哪些指令是语句可能会让人感到困惑。你只要记住如果该指令可以运算并得到一个值那它就是表达式。如果没有值,那么就是语句。 一个赋值语句是由变量,等号(=)和表达式组成的。表达式运算得到的值保存在变量中。像15这样的值本身也是一个表达式。只有一个值(它本身)组成的表达式是很容易运算的。这些表达式的运算结果就是它们本身。例如,表达式15的运算结果是15!
记住,变量中保存的是值,不是表达式。例如,如果我们有一个这样语句:spam = 10 + 5,那么表达式10 + 5会先被运算得到15然后再把值15保存到变量spam中。
你第一次用赋值语句给一个变量赋值的时候Python会自动创建那个变量。在此之后,再次给那个变量赋值的话只会把先前保存在变量中的值替换掉。 现在让我们来看看我们是否正确的创建了我们的变量。如果我们输入spam,我们应该会看到保存在变量中的值。 >>> spam = 15 >>> spam 15 >>>
现在,spam运算后的值是变量中保存的值15。
给你看一个有趣又有点绕的例子。如果我们输入spam + 5,我们会得到20,如下所示: >>> spam = 15 >>> spam + 5 20 >>>
这看起来可能有点怪,但如果我们记得我们赋了15这个值给spam的话就不会觉得怪了。因为我们把15赋给了spam,所以写spam+5就和写15+5这个表达式是一样的。
如果你试图在创建一个变量之前使用它,Python会给你一个错误信息,因为根本不存在这个变量。要是你把变量的名字打错了也会出错。
我们通过写另一个赋值语句的方式来改变我们保存在变量中的值。例如,你可以试试下面的代码: >>> spam = 15 >>> spam + 5 20
>>> spam = 3 >>> spam + 5 8 >>>
我们第一次输入spam+5时这个表达式的运算结果是20,因为我们保存在变量spam中的值是15。但是,当我们输入spam = 3后,15这个值就被替换掉了,或者说是被3重写了。现在我们输入spam+5,这个表达式的运算结果是8因为spam现在的值是3。
要想知道变量现在的值只需在交互界面中需输入变量名按回车即可。
现在我们来看一些有趣的代码。由于变量只是值的名字,所以我们可以用变量写出像下面这样的表达式: >>> spam = 15 >>> spam + spam 30
>>> spam - spam 0 >>>
当变量spam中保存的整型值是15时,输入spam + spam和输入15+15是一样的,得到的结果都是30。而spam – spam和15-15也是一样的,得到的结果都是0。上面的这些表达式都使用了spam这个变量两次。你可以在表达式中是使用变量任意次。记住,每次你在Python中使用变量的时候,它都会对变量名进行运算并得到保存在变量中的值。
我们甚至可以使用保存在变量spam中的值给变量spam赋值: >>> spam = 15
>>> spam = spam + 5 20 >>>
赋值语句spam = spam + 5的意思是:变量spam的新值是spam当前的值加上5。记住,等号(=)右边的表达式运算得到的值将会被赋给等号左边的变量。我们也可以通过重复多次给spam+5的方式来不断地增加spam的值。 >>> spam = 15
>>> spam = spam + 5 >>> spam = spam + 5 >>> spam = spam + 5 >>> spam 30 >>>
使用多个变量
我们编程的时候肯定不想被限制只能使用一个变量。通常我都会需要多个变量。
例如,让我们分别给两个名为eggs和fizz的变量赋值,像这样: >>> fizz = 10 >>> eggs = 15
现在变量fizz的值是10,eggs的值是15。
图2-5: 变量\和\的值
这次我们不改变变量spam的值,我们重新赋一个新的值给它。输入spam = fizz + eggs按回车,然后输入spam按回车来查看spam的新值。你能猜到是什么吗?
>>> fizz = 10 >>> eggs = 15
>>> spam = fizz + eggs >>> spam 25 >>>
变量spam现在的值是25因为我们把fizz和eggs相加的时候,其实是把fizz和eggs中的值相加了。
重写变量
改变变量中保存的值很容易。只要对该变量执行另一条赋值语句即可。让我们看看如果我们如下代码会发生什么: >>> spam = 42 >>> print(spam) 42
>>> spam = 'Hello' >>> print(spam) Hello
最初,我们把42保存到变量spam中了。这就是为什么输入print(spam)时会输出42。但是当我们执行spam = ‘Hello’这条语句时42就被字符串“Hello”给替换掉了。
用新的值替换变量中当前的值被称为重写变量。值得注意的是旧的值永远不存在了。如果你想把旧的值保存起来以备以后使用,那么你就要在重写前把它保存在另一个变量中。 >>> spam = 42 >>> print(spam) 42
>>> oldSpam = spam >>> spam = 'Hello' >>> print(spam) Hello
>>> print(oldSpam) 42
在上面的例子中,在重写变量spam的值之前我们它当前的值复制到了一个叫做oldSpam的变量中。在这个时间点上spam和oldSpam保存的值都是42。在下一行代码中字符串’Hello’被保存到了spam而oldSpam则保持不变。
总结
在这一章你学了写Python指令的基础。Python需要你严谨的告诉它要干什么,因为计算机没有常识,并且只能理解一些简单的指令。你知道了Python可以运算表达式(即把表达式简化为一个值),以及表达式是由值(如2或5)和运算符(+或-)组成的。你也学到了可以把值保存到变量中以备以后在程序中使用。
在下一章,我们会学习更多基本概念,然后你就可以写你的第一个程序了!

