父与子的编程之旅:与小卡特一起学 Python(9):记住内存和变量 2.2

阅读数:10 2019 年 11 月 20 日 15:29

父与子的编程之旅:与小卡特一起学Python(9):记住内存和变量 2.2

内容简介
《父与子的编程之旅:与小卡特一起学 Python》是一本家长与孩子共同学习编程的入门书。作者是一对父子,他们以 Python 语言为例,详尽细致地介绍了 Python 如何安装、字符串和操作符等程序设计的基本概念,介绍了条件语句、函数、模块等进阶内容,讲解了用 Python 实现游戏编程。书中的语言生动活泼,叙述简单明了。为了让学习者觉得编程有趣,《父与子的编程之旅:与小卡特一起学 Python》编排了很多卡通人物及场景对话,让学习者在轻松愉快之中跨入计算机编程的大门。
《父与子的编程之旅:与小卡特一起学 Python》适合中小学生以及一切编程初学者。

(名字)

再回到 Python Shell 窗口。(如果完成第 1 章中的例子后关闭了 IDLE,现在要再打开它。)在提示符后面键入:

复制代码
>>> Teacher = "Mr. Morton"
>>> print Teacher

(记住,>>> 是 Python 显示的提示符。你只需要键入它后面的内容,然后按回车。)你会看到下面的结果:

复制代码
Mr. Morton
>>>

你刚才创建了一个由字母 “Mr. Morton” 组成的东西,并且给它起了一个名字 Teacher。

这里的等号(=)告诉 Python 要赋值(assign)或者“让……等于……”。这里把字母序列 “Mr.Morton” 赋值给名字 Teacher。

父与子的编程之旅:与小卡特一起学Python(9):记住内存和变量 2.2

在计算机内存中的某个位置,字母序列 “Mr.Morton” 已经存在。你不需要准确地知道它们到底在哪里。只需要告诉 Python 这个字母序列的名字是 Teacher,从现在开始就要通过这个名字来引用这个字母序列。名字就像标签或者不干胶便条,你可以用它来标识一些东西。

父与子的编程之旅:与小卡特一起学Python(9):记住内存和变量 2.2

在一个东西两边加上引号时,Python 会按字面来处理它。它会把引号里的内容原样打印出来。如果没有加引号,Python 就必须明确这个东西到底是什么。这可能是数字(如 5)、表达式(比如 5 + 3)或者名字(如 Teacher)。由于我们创建了名字 Teacher,所以 Python 会打印这个名字里的内容,这正是字母序列 “Mr. Morton”。

这就像有人在说,“请写下你的地址”,你肯定不会这样写(如下图):

父与子的编程之旅:与小卡特一起学Python(9):记住内存和变量 2.2

(不过,也许卡特会这么干,因为他总是喜欢调皮捣蛋……)

父与子的编程之旅:与小卡特一起学Python(9):记住内存和变量 2.2

你可能会这样写:

父与子的编程之旅:与小卡特一起学Python(9):记住内存和变量 2.2

如果写成“你的地址”,就是在按字面看这句话。除非加上引号,否则 Python 不会按字面来处理。下面来看另一个例子:

复制代码
>>> print "53 + 28"
53 + 28
>>> print 53 + 28
81

有引号时,Python 会直接照你所说显示输出:53 + 28。

没有引号时,Python 把 53 + 28 处理为一个算术表达式,它会计算这个表达式。在这里,这是一个两数相加的表达式,所以 Python 会给出它们的和。

术语箱
算术表达式(arithmetic expression)是数字和符号的一个组合,Python 可以算出它的值。
计算(evaluate)就表示“算出……的值”。

Python 要确定需要多少内存来存储这些字母,以及要使用哪一部分内存。要获取信息(取回信息),只需要再使用同样的名字。我们使用 print 关键字并提供名字,这会在屏幕上显示具体的内容(如数字或文本)。

像程序员一样思考
把一个值赋给一个名字时(如把值“Mr. Morton”赋给 Teacher),它会存储在内存中,称为变量(variable)。在大多数编程语言中,都把这称为“把值存储(store)在变量中”。
不过 Python 与大多数其他计算机语言的做法稍有不同。它并不是把值存储在变量中,而更像是把名字放在值上。
有些 Python 程序员说,Python 没有“变量”,而是只有“名字”。不过其实它们的行为基本上是一样的。这是一本关于编程的书(只不过刚好使用了 Python),而不是专门讨论 Python 的。所以谈到 Python 名时,我们可能会交替使用变量(variable)、名字(name)或变量名(variable name)等不同的术语。实际上,只要你理解变量有什么表现以及在程序中如何使用变量,怎么称呼并不重要。
顺便说一句,Guido van Rossum(也就是创建 Python 的那个人)在他的 Python 教程中曾经这样讲:“‘=’符号用来将一个值赋给一个变量。”所以我猜他认为 Python 是有变量的!

一种简洁的存储方法
在 Python 中使用名字就像是干洗店给衣服加标签。你的衣服挂在晾衣架上,上面附着写有你的名字的标签,这些衣服都挂在一个巨大的旋转吊架上。你回来取衣服时,并不需要知道它们存放在这个大型吊架的具体哪个位置。只需要提供你的名字,干洗店的人就会把衣服交还给你。实际上,你的衣服可能并不在原先所放的位置。不过干洗店的人会为你记录衣服的位置。要取回你的衣服,只需要提供你的名字。
变量也一样。你不需要准确地知道信息存储在内存中的哪个位置。只需要记住存储变量时所用的名字,再使用这个名字就可以了。

父与子的编程之旅:与小卡特一起学Python(9):记住内存和变量 2.2

除了字母,还可以为其他内容创建变量。可以给数值指定名字。你应该还记得前面的例子:

复制代码
>>> 5 + 3
8

下面用变量来完成这个例子:

复制代码
>>> First = 5
>>> Second = 3
>>> print First + Second
8

在这里,我们创建了两个名字 First 和 Second。数字 5 赋给 First,数字 3 赋给 Second。然后用 print 把这两个数的和打印出来。下面是完成这个例子的另一种做法。你可以试试看:

复制代码
>>> Third = First + Second
>>> Third
8

父与子的编程之旅:与小卡特一起学Python(9):记住内存和变量 2.2 注意这里的做法。在交互模式中,只需键入变量名就可以显示这个变量的值,而不必使用 print。(不过程序中可不行。)

在这个例子中,并没有在 print 指令中求和,而是先取 First 的值和 Second 的值,将二者相加,创建一个新的值,名为 Third。Third 是 First 和 Second 的和。

父与子的编程之旅:与小卡特一起学Python(9):记住内存和变量 2.2

同一个东西可以有多个名字,可以在交互模式中试试这个指令:

复制代码
>>> MyTeacher = "Mrs. Goodyear"
>>> YourTeacher = MyTeacher
>>> MyTeacher
"Mrs. Goodyear"
>>> YourTeacher
"Mrs. Goodyear"

父与子的编程之旅:与小卡特一起学Python(9):记住内存和变量 2.2

这就像在同一个东西上贴两个标签。一个标签写着 YourTeacher,另一个标签写着 MyTeacher,不过它们都贴在 “Mrs. Goodyear” 上。

父与子的编程之旅:与小卡特一起学Python(9):记住内存和变量 2.2

卡特,这个问题问得好。答案是:不会。实际上,修改这个名字会创建一个新的值 “Mrs.Tysick”。标签 MyTeacher 会从 “Mrs.Goodyear” 上撕掉,贴到 “Mrs. Tysick” 上。你仍然有两个不同的名字(两个标签),不过,现在它们分别贴在两个不同的东西上,而不再贴在同一个东西上了。

父与子的编程之旅:与小卡特一起学Python(9):记住内存和变量 2.2

父与子的编程之旅:与小卡特一起学Python(9):记住内存和变量 2.2

图灵地址 https://www.ituring.com.cn/book/1353

评论

发布