友情提示:380元/半年,儿童学编程,就上码丁实验室。
变量之所以叫作“变量”是有原因的,就是因为他们是……怎么说呢……是可变的!这是指你可以改变赋给它们的值。在Python中,这就要创建一个与原先不同的新东西,并把旧标签(名字)贴到这个新东西上。
上一节中我们就采用这种方式改变了MyTeacher。我们将标签MyTeacher从”Mrs.Goodyear”上取下来,把它贴到一个新东西“Mrs.Tysick”上。这样就为MyTeacher赋了一个新值。
下面再来试一个例子,还记得之前创建的变量Teacher吗?嗯,如果你还没有关闭IDLE,这个变量就还在,可以检查看看:
>>> Teacher
“Mr.Morton”
没错,确实还在。不过现在可以把它改成其它内容:
>>>Teacher=‘Mr.smith’
>>>Teacher
‘Mr.smint’
我们创建了一个新东西“Mr.Smith”,并把字命名为Teacher。我们的标签从原来的值上取下来,贴到了这个新东西上,不过原来的“Mr.Morton”怎么样了呢?
应该记得,一个东西可以有多个名字(上面可以贴多个标签)。如果“Mr.Morton”上还有另一个标签,那么它还在计算机的内存里。不过,如果它上面再没有任何标签了,Python就会发现再没有人需要它了,所以会把它从内存中删除。
这样一来,内存中就不会塞满那些没人用的东西。Python会自动完成所有这些清理工作,根本不用你操心。
还有一点很重要,这里没有真的把“Mr.Morton”改成“Mr.Smith”。我们只是把标签从一个东西移到另一个东西上(重新指派名字。)Python中有些东西(如数字和字符串)是不能改变的。你可以把它们的名字重新指派到其它东西上(就像我们刚才所做的一样),但是并不能对原选的东西做任何改变。
Python中还有一些东西是可以改变的。
第12章介绍列表(list)时我们会更多的讨论这方面的内容。
还可以创建一个等于自己的变量:
>>> Score = 7
>>> Score = Score
我敢打赌,你肯定在想:“什么嘛,这一点儿用也没有!”你的想法没错,这实际上就是在说“我是我”。不过,稍稍做点改变,你就能成为一个全新的你!试试看:
>>> Score = Score + 1
>>> Print Score
8
这里发生了什么?在第一行中,score标签本来贴在值7上,我们创建了一个新东西:score!,也就是7+1.这个新东西是8.然后把score标签从原来的东西(7)上取下来,贴到这个新东西(8)上,所以score从7重新指派到8.
要让变量等于某个东西,这个变量总会出现在等号(=)左边。巧妙的是,变量也可以出现在等号右边。这很有用,在很多程序中都会看到。,最常见的用法是让变量自增(increment),也就是让它增加某个量(就像前面所做的),或者与之相反,也可以让变量自减(decrement),让它减少某个量。
开始时score=7
让它增加1(得到8),创建一个新东西。
把名字score赋给这个新东西。
这样一来,score就从7变成了8.
关于变量,有几个重要的问题必须记住。
程序可以在任何时间对变量重新赋值(把标签贴在新东西上)。这一点很重要,必须记住。因为编程中最常见的bug就是改变了不该改变的变量,或者尽管改变的变量无误,但是时机不合适。
要避免这种情况,有效的方法是使用容易记的变量名。我们可能用过下面这两个变量名:
t = ‘Mr.Morton’ 或者 x1796sadakv65sd9 = ‘Mr.Morton’
不过这样的程序中会很难记住,如果使用这些变量名,出错的可能性会更大。应该尽量使用能够说明用途的名字。可以告诉你变量要用来做什么。
变量名区分大小写,这说明大写和小写是不同的,所以teacher和Teacher是两个完全不同的名字。
记住一,如果想了解Python的所有变量命名规则,可以查看附录。

·测试题
1、如何告诉Python变量是字符串(字符)而不是数字?
2、一旦创建一个变量,能不能改变赋给这个变量的值?
3、变量名TEACHER和TEACHEr相同吗?
4、对Python来说,‘Blah’与“Blah”一样吗?
5、对Python来说,‘4’是不是等同于4?
6、下面哪个变量名不正确?为什么?
(a)Teacher2
(b)2Teacher
(c)teacher_25
(d)Teacher
7、“10”是数字还是字符串?
·动手试一试
1、创建一个变量,并给字赋一个数值(任何数值都行)。然后使用print显示这个变量。
2、改变这个变量,可以用一个新值替换原来的值,或者将原来的值增加某个量。使用print显示这个新值。
3、创建另一个变量,并赋给它一个字符串(某个文本)。然后使用print显示这个变量。
4、像上一章一样,在交互模式中让Python计算一周有多少分钟。不过这一次要使用变量。以Daysperweek(每周天数)、Hoursperday(每天小时数)和Minuresperhour(每小时分钟数)为名分别创建变量(或者也可以用自己取的变量名)。然后将它们相乘。
5、人们总是说没有足够的时间做到尽善尽美。如果一天有26个小时,那么一周会有多少分钟呢?(提示:改变HoursPerDay变量)