[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:00.00,0:00:06.73,Default,,0000,0000,0000,,在本节,我将变量的概念加到代码里 Dialogue: 0,0:00:06.73,0:00:12.64,Default,,0000,0000,0000,,变量就像存储器里的盒子。这个盒子可以存储值,如数字、字符串或其他 Dialogue: 0,0:00:12.64,0:00:18.41,Default,,0000,0000,0000,,看这里的图表 Dialogue: 0,0:00:18.41,0:00:23.16,Default,,0000,0000,0000,,这行是 x = 11。这称作变量赋值 Dialogue: 0,0:00:23.16,0:00:27.84,Default,,0000,0000,0000,,我们理解变量的方式就是在存储器里有个盒子,我在这里画了一个盒子 Dialogue: 0,0:00:27.84,0:00:32.58,Default,,0000,0000,0000,,用 x 来标记盒子。盒子可以装一个值。代码是 x = 7 时 Dialogue: 0,0:00:32.58,0:00:37.26,Default,,0000,0000,0000,,表示它取数值7,将其存储在盒子里 Dialogue: 0,0:00:37.26,0:00:41.83,Default,,0000,0000,0000,,这就是变量赋值。这里的代码实例就是这样做 Dialogue: 0,0:00:41.83,0:00:46.34,Default,,0000,0000,0000,,第一行里,x = 7,我将 7 存储在那里 Dialogue: 0,0:00:46.34,0:00:51.28,Default,,0000,0000,0000,,后面的行有 x,这行是 print (x) 或 print ("lucky", x) Dialogue: 0,0:00:51.28,0:00:56.90,Default,,0000,0000,0000,,这些 x 都没有带等号,它们只是从盒子里取出值 Dialogue: 0,0:00:56.90,0:01:02.50,Default,,0000,0000,0000,,所以盒子里存储什么,这些 x 就用什么 Dialogue: 0,0:01:02.50,0:01:07.73,Default,,0000,0000,0000,,我来运行一下。这里我得到的是,打印用7 Dialogue: 0,0:01:07.73,0:01:12.81,Default,,0000,0000,0000,,原因是 x = 7 这行代码将7存储在盒子里 Dialogue: 0,0:01:12.81,0:01:17.95,Default,,0000,0000,0000,,后面的行都取7。如果将7改成8,我只改一行,运行代码 Dialogue: 0,0:01:17.95,0:01:23.02,Default,,0000,0000,0000,,现在,全部三行都取8 Dialogue: 0,0:01:23.02,0:01:28.03,Default,,0000,0000,0000,,因为这一行将8存储在盒子里。再做一个试验 Dialogue: 0,0:01:28.03,0:01:34.58,Default,,0000,0000,0000,,我们已经讲过数字和字符串了。用两种数据类型我们就可以做很多事情 Dialogue: 0,0:01:34.58,0:01:41.06,Default,,0000,0000,0000,,x = "hi",将字符串存储在盒子里 Dialogue: 0,0:01:41.06,0:01:48.16,Default,,0000,0000,0000,,运行就可以得到每行都有 hi Dialogue: 0,0:01:48.16,0:01:53.68,Default,,0000,0000,0000,,这个变量的名称是 x。我选 x 作为第一个例子,因为它是数学课上常见的变量 Dialogue: 0,0:01:53.68,0:01:58.28,Default,,0000,0000,0000,,不过我们可以任意选择名称,条件是名称要一致 Dialogue: 0,0:01:58.28,0:02:03.13,Default,,0000,0000,0000,,我将它改成 xyz = “hi" Dialogue: 0,0:02:03.13,0:02:07.97,Default,,0000,0000,0000,,就产生 xyz 这个变量,值是 hi Dialogue: 0,0:02:07.97,0:02:12.46,Default,,0000,0000,0000,,我要做的就是确保后面每一行都用 xyz Dialogue: 0,0:02:12.46,0:02:16.58,Default,,0000,0000,0000,,运行程序,仍然可以运行 Dialogue: 0,0:02:16.58,0:02:20.55,Default,,0000,0000,0000,,概括来讲,你可以为变量选择你想要的任何名称 Dialogue: 0,0:02:20.55,0:02:24.78,Default,,0000,0000,0000,,条件是以后使用这个变量时要用同样的名称 Dialogue: 0,0:02:24.78,0:02:29.37,Default,,0000,0000,0000,,你一定要前后一致。变量的这一个简单运用 Dialogue: 0,0:02:29.37,0:02:33.69,Default,,0000,0000,0000,,归根结底是避免重复 Dialogue: 0,0:02:33.69,0:02:37.91,Default,,0000,0000,0000,,就是说我要在程序里使用某个值,在前面某一行里将这个值赋给一个变量 Dialogue: 0,0:02:37.91,0:02:42.33,Default,,0000,0000,0000,,就可以在后面的行里使用这个变量 Dialogue: 0,0:02:42.33,0:02:46.82,Default,,0000,0000,0000,,假如以后我想改变程序,用其他值 Dialogue: 0,0:02:46.82,0:02:51.08,Default,,0000,0000,0000,,就只需要在一处地方修改变量的值 Dialogue: 0,0:02:51.08,0:02:55.19,Default,,0000,0000,0000,,所有用到变量的地方就会使用新的值 Dialogue: 0,0:02:55.19,0:03:00.57,Default,,0000,0000,0000,,实际上,我们经常在代码里用到这样的模式 Dialogue: 0,0:03:00.57,0:03:06.71,Default,,0000,0000,0000,,我要提到的是等号在这里的使用和在数学课或代数课上使用的不一样 Dialogue: 0,0:03:06.71,0:03:12.70,Default,,0000,0000,0000,,在数学里,如果我说 x = y,这个等式更有力 Dialogue: 0,0:03:12.70,0:03:18.30,Default,,0000,0000,0000,,就是说 x 和 y 在任何时候都相等 Dialogue: 0,0:03:18.30,0:03:22.75,Default,,0000,0000,0000,,在计算机里,等号没有这么复杂的定义。它只是赋值而已 Dialogue: 0,0:03:22.75,0:03:27.50,Default,,0000,0000,0000,,运行这一行时,取这个值,将其存储在带标记的盒子里,如 xyz 或其他 Dialogue: 0,0:03:27.50,0:03:32.13,Default,,0000,0000,0000,,运行这一行时,就会发生这种情况 Dialogue: 0,0:03:32.13,0:03:37.00,Default,,0000,0000,0000,,但它不会强制让整个程序都这样运行 Dialogue: 0,0:03:37.00,0:03:41.87,Default,,0000,0000,0000,,所以它比数学课上学的等号简单 Dialogue: 0,0:03:41.87,0:03:49.97,Default,,0000,0000,0000,,我来试一下使用这个概念的一个小代码实例 Dialogue: 0,0:03:49.97,0:03:56.18,Default,,0000,0000,0000,,这段代码遵循的模式是输出 Dialogue: 0,0:03:56.18,0:04:01.30,Default,,0000,0000,0000,,题目是写“代码,修改代码来产生下述结果” Dialogue: 0,0:04:01.30,0:04:06.35,Default,,0000,0000,0000,,这一段的意思是你在高中时对某个人有好感 Dialogue: 0,0:04:06.35,0:04:11.64,Default,,0000,0000,0000,,我们要写一段话。假设我们对一个叫 Alice 的人有好感 Dialogue: 0,0:04:11.64,0:04:16.02,Default,,0000,0000,0000,,这里写 Alice,Alice,Alice,Alice 四次 Dialogue: 0,0:04:16.02,0:04:20.76,Default,,0000,0000,0000,,接着是 In high school I had a crush on Alice. Now the Alice curse is lifted.(高中我对 Alice 有好感。现在我已经不迷她了。) Dialogue: 0,0:04:20.76,0:04:25.63,Default,,0000,0000,0000,,这个程序的要领是不重复使用 Alice 这个名字 Dialogue: 0,0:04:25.63,0:04:30.38,Default,,0000,0000,0000,,要用到变量。这样以后写叫 Bob 或 Zoe 的人有好感 Dialogue: 0,0:04:30.38,0:04:35.14,Default,,0000,0000,0000,,就只要写一次名字。我只要在一处地方改名字就可以了 Dialogue: 0,0:04:35.14,0:04:39.78,Default,,0000,0000,0000,,这里写 x = "Alice",这是问题陈述的内容 Dialogue: 0,0:04:39.78,0:04:45.18,Default,,0000,0000,0000,,这里的要领是在其他行只写 x Dialogue: 0,0:04:45.18,0:04:50.38,Default,,0000,0000,0000,,这样,我就不用写这个人的名字四次 Dialogue: 0,0:04:50.38,0:04:55.51,Default,,0000,0000,0000,,只写 x, x, x, x 就可以了。我们来试一下。 Dialogue: 0,0:04:55.51,0:05:01.18,Default,,0000,0000,0000,,就有四个 Alice。下一行写的是 in high school I had a crush on Dialogue: 0,0:05:01.18,0:05:06.58,Default,,0000,0000,0000,,有点像填空,对吧?随便用一个名字好了 Dialogue: 0,0:05:06.58,0:05:11.85,Default,,0000,0000,0000,,我可以写 print ("。这部分就是一个字符串。 Dialogue: 0,0:05:11.85,0:05:19.62,Default,,0000,0000,0000,,我写 in high school I had a crush on,这部分是一样的 Dialogue: 0,0:05:19.62,0:05:27.02,Default,,0000,0000,0000,,在字符串结尾写上 , x。输出这个字符串,后面就会有 Alice Dialogue: 0,0:05:27.02,0:05:33.62,Default,,0000,0000,0000,,试试看。对的。到最后一行 Dialogue: 0,0:05:33.62,0:05:40.19,Default,,0000,0000,0000,,你会看到有分号。我总会用分号。在 JavaScript 里,分号是可用可不用的 Dialogue: 0,0:05:40.19,0:05:47.00,Default,,0000,0000,0000,,这里写 Now the,这是字符串,我写逗号 x Dialogue: 0,0:05:47.00,0:05:53.82,Default,,0000,0000,0000,,有点混合起来了,有字符串和x Dialogue: 0,0:05:53.82,0:05:59.95,Default,,0000,0000,0000,,print 中间的部分 curse is lifted。好了,试试看。是可以的 Dialogue: 0,0:05:59.95,0:06:04.33,Default,,0000,0000,0000,,这是变量的简单运用,我们用等号赋值一次 Dialogue: 0,0:06:04.33,0:06:08.21,Default,,0000,0000,0000,,然后在下面用几次 Dialogue: 0,0:06:08.21,0:06:12.14,Default,,0000,0000,0000,,实际上,我们在这门课会使用这样的模式。我想你们会喜欢用它 Dialogue: 0,0:06:12.14,0:06:13.72,Default,,0000,0000,0000,,这就是我要你们练习的模式