4 来给数字起名字

目标:

√明白计算机存储数字的方式

√学会如何输入程序脚本

引言:

在前面的练习中,我们曾写了一句程序 print(25+17) 让计算机去计算。但是真正编程时,我们一般不会让计算机直接算数字,都是先给数字起个名字,在程序中用名字来代表数字使用。比如,我们会这样写这个程序,如代码清单 4-1 所示。

代码清单 4-1 test4.1

1 a=25  
2 b=17  
3 print(a+b)

这 3 句话就是计算机语言,而且不能用我们平常的方式去理解,需要翻译一下。重点是等号(=),它在计算机语言里不是表示两边相等的意思,而是起名字的意思,所以翻译为:第 1 句给 25 起个名字叫 a, 第 2 句给 17 起个名字叫 b,第 3 句显示出 a+b 的结果。你是不是觉得奇怪呢?但是想一想,我们每个人不也有自己的名字吗?那么数字有名字有什么奇怪的?

当然,这么做其实另有原因,我们简单说明一下,不过你不明白下面的内容,也不影响继续阅读本书。这里涉及计算机存储的原理,就是计算机是怎么记住我们输入的数字的。可以这样形象化理解,计算机里有个部件叫内存,程序中的数字都保存在计算机的内存里,内存就好比图 4-1 所示的柜子。

柜子里有很多抽屉可以放东西,当我们输入一个数字时,计算机其实是不能直接记住这个数字的;它会先打开一个抽屉,把数字放入抽屉,再给抽屉取个名字,然后把抽屉的名字与这个抽屉的位置对应上;当我们以后再提到抽屉的名字时,计算机就根据对应的位置打开这个抽屉,取出里面的数字。比如,我们输入 a=25,计算机的处理过程就相当于打开一个抽屉,把抽屉的名字取为 a,在抽屉里放入 25,把a 和抽屉位置一起记录下来。当我们后面又输入 print(a+b) 时,要用到 a 了,计算机根据当时记录下的位置找到抽屉,把里面的25 拿出来使用。

图像说明文字

图 4-1 用柜子解释内存

以后在计算机语言时,看到 = 就表示左边东西是右边东西的名字,而且左右不能交换,如写成 25=a 就不是这个意思了。所以千万不要认为程序中的“=”还是数学上的等于号。要特别注意,程序中的等于号一般用“==”表示。下面我们再介绍一下 a=25 的专业说法。其实你现在可以不去管它怎么说才专业,只要大概明白这个意思就行了,但是如果能用专业术语和别人进行交流,不是更有面子吗?在计算机术语里,a 称为“变量”(更多内容参见附录 B),那么,为什么叫“变量”呢?因为它只是代表一个抽屉,里面放什么东西是可以变的。=在计算机术语中叫作“赋值运算符”,“赋值”就是给变量确定一个固定的值。所以 a=25 的专业说法是:把变量 a 赋值为 25。使用变量表示数字,可以使我们的程序变得十分强大,在后面的内容中你就会体会到这一点。

小贴士

对于还不能理解上述概念的孩子,也可以简单地把 a=25 解释成“给‘25’起个名字叫‘a’”,把 = 理解成“起名字的符号”。最好不要说成“a等于 25”,因为会与数学中的概念相冲突,使较小的孩子产生困惑。后面我们会使用“名字”来代替“变量”这个词,请大家注意这点。

第一步:打开编程工具

(1) 打开编辑器窗口 Python Shell,如图 4-2 所示。 图像说明文字

图 4-2 打开编辑器窗口 Python Shell

(2) 在 Python Shell 里新开一个脚本窗口,具体方法如下:点击窗口左上角的 File(文件)→ New Window(新窗口),如图 4-3 所示。在脚本窗口里可以把输入的内容保存下来,在图 4-2 所示的窗口中输入内容是不能保存的。

图像说明文字

图 4-3 找到新建脚本窗口命令

(3) 此时会出现一个新的空白窗口,其中左上角显示的名字为 Untitled,这个词的意思是“未命名”。整个窗口里只有一个光标在闪动,以后我们就在这里输入程序脚本,如图 4-4 所示。

图像说明文字

图 4-4 一个新空白窗口

第二步:输入程序

把代码清单 4-1 所示的程序输入打开的空白窗口中(注意:每句代码前面的数字表示代码的行号,不用输入),输入完成后,结果如图 4-5所示。

图像说明文字

图 4-5 输入 test4.1

第三步:运行程序

下面我们要运行这个程序。请记住,在运行前必须先保存这个程序。

(1) 在输入程序的窗口左上角点击 File → Save As。

(2) 此时会弹出“另存为”对话框,在“文件名”中输入 test4.1(还记得为什么要把文件名定义为 test4.1 吗?因为这是第 4 章产生的第 1个文件),然后点击下面的“保存”按钮。此时这个窗口左上角的名字就变为 test4.1,后面的 C:/Python32/test4.1 是这个文件在计算机里的保存位置,如图 4-6 中的标题栏所示。

图像说明文字

图 4-6 程序 test4.1 的保存结果

(3) 再点击 test4.1 窗口中上面菜单栏里的 Run 选项,在下拉菜单中点击 Run Module 菜单项,此时程序就会运行,如图 4-7 所示。

图像说明文字

图 4-7 运行程序

(4) 运行结果会显示在原来的 Python Shell 窗口,如图 4-8 所示。

图像说明文字

图 4-8 test4.1 的运行结果

第四步:同名与多名

说到给数字起名字,能不能两个数字起一个名字,或者一个数字用两个名字呢?

两个数字起一个名字的情况如代码清单 4-2 所示。

代码清单 4-2 test4.2

1 a=1  
2 a=2  
3 print(a)

请输入代码清单 4-2 所示的程序,把程序保存为 test4.2,然后运行。运行结果为 2,解释如下。前面我们用抽屉来模拟说明计算机的内存,但实际上内存和真正的抽屉不一样,内存里面“每个抽屉”只能放一样东西,如果已经放了东西的抽屉又被放入另一个东西,那么先放的东西就会被计算机扔掉,所以 a 里先放入1,再放入 2,前面的 1 就被扔掉了。可以看出,计算机不允许两个数字取同一个名字,因为这样会造成麻烦,使用名字的时候分不清到底代表哪一个数字。一个数字用两个名字的情况如代码清单 4-3 所示。

代码清单 4-3 test4.3

1 a=1  
2 b=1  
3 print(a)  
4 print(b)

请输入代码清单 4-3 所示的程序,把程序保存为 test4.3,然后运行,运行结果如 图 4-9 所示。

图像说明文字

图 4-9 test4.3 的运行结果

可以看出,计算机允许一个数有两个名字,所以给 1 取名为 a 后,再给 1 取名为 b 也没有问题。这不会产生矛盾,因为使用任意一个名字都能唯一确定代表哪个数字。

小贴士
因为现在的主要目的是让读者明白变量的含义,所以对变量赋值的说明做了简化处理。如果想深入了解不同类型语言的赋值操作,需阅读相应的专业图书。

第五步:闯关任务

独立打开编程工具的脚本窗口,用起名字的方式编写一个程序,计算出 23+67 和 67–23 的值。保存为 test4.4,并运行查看结果。

目录

  • 前言
  • 1 先来三道小测试
  • 2 打倒一号纸老虎
  • 3 从手指到计算机
  • 4 来给数字起名字
  • 5 培养优秀服务员
  • 6 奥运宝宝算年龄
  • 7 发现循环的秘密
  • 8 敢和高斯比赛吗
  • 9 循环也能讲条件
  • 10 程序里面走迷宫
  • 11 程序里面找套娃
  • 12 书山有路勤为径
  • 13 做道难题试一试
  • 14 自己也能设密码
  • 15 做到利人又利己
  • 16 程序里面设暗号
  • 17 使用函数做计算
  • 18 自己做一个模块
  • 19 模块拿来就能用
  • 20 程序里面摸大象
  • 21 海龟陪你学编程
  • 22 创作一幅抽象画
  • 23 古老游戏的玩法
  • 24 打倒二号纸老虎
  • 25 让计算机画个圆
  • 26 轻轻吹气圆会动
  • 27 方块不动圆才动
  • 28 自己也能做动画
  • 29 听我指挥的动画
  • 30 用鼠标控制的动画
  • 31 有模有样的动画
  • 32 自己做个小游戏
  • 33 程序的服务窗口 
  • 34 考试分数出来了
  • 35 修改考试分数表
  • 36 此处无表胜有表
  • 37 数据仓库小管家
  • 38 列表还有两兄弟
  • 39 了解函数的执行
  • 40 函数也能做参数
  • 41 银行账户要转账
  • 42 计算机的小魔法
  • 43 显示格式有讲究
  • 44 文件写入与读取
  • 45 了解变量作用域
  • 46 程序之间有协议
  • 47 服务器与浏览器
  • 48 网站里面有什么
  • 49 人工智能初体验
  • 附录A 进制与编码
  • 附录B 变量
  • 附录C 变量的数据类型
  • 附录D运算符
  • 附录E MATH 模块
  • 附录F 文件相关概念
  • 附录G 英文速查表