WEBVTT 00:00:00.000 --> 00:00:06.726 在本节,我将变量的概念加到代码里 00:00:06.726 --> 00:00:12.640 变量就像存储器里的盒子。这个盒子可以存储值,如数字、字符串或其他 00:00:12.640 --> 00:00:18.411 看这里的图表 00:00:18.411 --> 00:00:23.158 这行是 x = 11。这称作变量赋值 00:00:23.158 --> 00:00:27.839 我们理解变量的方式就是在存储器里有个盒子,我在这里画了一个盒子 00:00:27.839 --> 00:00:32.576 用 x 来标记盒子。盒子可以装一个值。代码是 x = 7 时 00:00:32.576 --> 00:00:37.258 表示它取数值7,将其存储在盒子里 00:00:37.258 --> 00:00:41.828 这就是变量赋值。这里的代码实例就是这样做 00:00:41.828 --> 00:00:46.342 第一行里,x = 7,我将 7 存储在那里 00:00:46.342 --> 00:00:51.285 后面的行有 x,这行是 print (x) 或 print ("lucky", x) 00:00:51.285 --> 00:00:56.895 这些 x 都没有带等号,它们只是从盒子里取出值 00:00:56.895 --> 00:01:02.504 所以盒子里存储什么,这些 x 就用什么 00:01:02.504 --> 00:01:07.734 我来运行一下。这里我得到的是,打印用7 00:01:07.734 --> 00:01:12.808 原因是 x = 7 这行代码将7存储在盒子里 00:01:12.808 --> 00:01:17.946 后面的行都取7。如果将7改成8,我只改一行,运行代码 00:01:17.946 --> 00:01:23.019 现在,全部三行都取8 00:01:23.019 --> 00:01:28.029 因为这一行将8存储在盒子里。再做一个试验 00:01:28.029 --> 00:01:34.579 我们已经讲过数字和字符串了。用两种数据类型我们就可以做很多事情 00:01:34.579 --> 00:01:41.056 x = "hi",将字符串存储在盒子里 00:01:41.056 --> 00:01:48.164 运行就可以得到每行都有 hi 00:01:48.164 --> 00:01:53.677 这个变量的名称是 x。我选 x 作为第一个例子,因为它是数学课上常见的变量 00:01:53.677 --> 00:01:58.283 不过我们可以任意选择名称,条件是名称要一致 00:01:58.283 --> 00:02:03.128 我将它改成 xyz = “hi" 00:02:03.128 --> 00:02:07.973 就产生 xyz 这个变量,值是 hi 00:02:07.973 --> 00:02:12.461 我要做的就是确保后面每一行都用 xyz 00:02:12.461 --> 00:02:16.583 运行程序,仍然可以运行 00:02:16.583 --> 00:02:20.547 概括来讲,你可以为变量选择你想要的任何名称 00:02:20.547 --> 00:02:24.775 条件是以后使用这个变量时要用同样的名称 00:02:24.775 --> 00:02:29.374 你一定要前后一致。变量的这一个简单运用 00:02:29.374 --> 00:02:33.694 归根结底是避免重复 00:02:33.694 --> 00:02:37.906 就是说我要在程序里使用某个值,在前面某一行里将这个值赋给一个变量 00:02:37.906 --> 00:02:42.334 就可以在后面的行里使用这个变量 00:02:42.334 --> 00:02:46.816 假如以后我想改变程序,用其他值 00:02:46.816 --> 00:02:51.082 就只需要在一处地方修改变量的值 00:02:51.082 --> 00:02:55.186 所有用到变量的地方就会使用新的值 00:02:55.186 --> 00:03:00.570 实际上,我们经常在代码里用到这样的模式 00:03:00.570 --> 00:03:06.712 我要提到的是等号在这里的使用和在数学课或代数课上使用的不一样 00:03:06.712 --> 00:03:12.703 在数学里,如果我说 x = y,这个等式更有力 00:03:12.703 --> 00:03:18.296 就是说 x 和 y 在任何时候都相等 00:03:18.296 --> 00:03:22.751 在计算机里,等号没有这么复杂的定义。它只是赋值而已 00:03:22.751 --> 00:03:27.502 运行这一行时,取这个值,将其存储在带标记的盒子里,如 xyz 或其他 00:03:27.502 --> 00:03:32.134 运行这一行时,就会发生这种情况 00:03:32.134 --> 00:03:37.004 但它不会强制让整个程序都这样运行 00:03:37.004 --> 00:03:41.874 所以它比数学课上学的等号简单 00:03:41.874 --> 00:03:49.972 我来试一下使用这个概念的一个小代码实例 00:03:49.972 --> 00:03:56.185 这段代码遵循的模式是输出 00:03:56.185 --> 00:04:01.297 题目是写“代码,修改代码来产生下述结果” 00:04:01.297 --> 00:04:06.348 这一段的意思是你在高中时对某个人有好感 00:04:06.348 --> 00:04:11.645 我们要写一段话。假设我们对一个叫 Alice 的人有好感 00:04:11.645 --> 00:04:16.019 这里写 Alice,Alice,Alice,Alice 四次 00:04:16.019 --> 00:04:20.761 接着是 In high school I had a crush on Alice. Now the Alice curse is lifted.(高中我对 Alice 有好感。现在我已经不迷她了。) 00:04:20.761 --> 00:04:25.628 这个程序的要领是不重复使用 Alice 这个名字 00:04:25.628 --> 00:04:30.383 要用到变量。这样以后写叫 Bob 或 Zoe 的人有好感 00:04:30.383 --> 00:04:35.139 就只要写一次名字。我只要在一处地方改名字就可以了 00:04:35.139 --> 00:04:39.778 这里写 x = "Alice",这是问题陈述的内容 00:04:39.778 --> 00:04:45.185 这里的要领是在其他行只写 x 00:04:45.185 --> 00:04:50.380 这样,我就不用写这个人的名字四次 00:04:50.380 --> 00:04:55.506 只写 x, x, x, x 就可以了。我们来试一下。 00:04:55.506 --> 00:05:01.180 就有四个 Alice。下一行写的是 in high school I had a crush on 00:05:01.180 --> 00:05:06.580 有点像填空,对吧?随便用一个名字好了 00:05:06.580 --> 00:05:11.850 我可以写 print ("。这部分就是一个字符串。 00:05:11.850 --> 00:05:19.622 我写 in high school I had a crush on,这部分是一样的 00:05:19.622 --> 00:05:27.020 在字符串结尾写上 , x。输出这个字符串,后面就会有 Alice 00:05:27.020 --> 00:05:33.621 试试看。对的。到最后一行 00:05:33.621 --> 00:05:40.190 你会看到有分号。我总会用分号。在 JavaScript 里,分号是可用可不用的 00:05:40.190 --> 00:05:47.003 这里写 Now the,这是字符串,我写逗号 x 00:05:47.003 --> 00:05:53.816 有点混合起来了,有字符串和x 00:05:53.816 --> 00:05:59.948 print 中间的部分 curse is lifted。好了,试试看。是可以的 00:05:59.948 --> 00:06:04.334 这是变量的简单运用,我们用等号赋值一次 00:06:04.334 --> 00:06:08.211 然后在下面用几次 00:06:08.211 --> 00:06:12.138 实际上,我们在这门课会使用这样的模式。我想你们会喜欢用它 00:06:12.138 --> 00:06:13.720 这就是我要你们练习的模式