
2.1 变量魔法
用标识符命名的存储单元的地址称为变量,变量是用来存储数据的,通过标识符可以获取变量的值,也可以对变量进行赋值。对变量赋值的意思是将值赋给变量,赋值完成后,变量所指向的存储单元存储了被赋的值。
阿短的前行目标
● 能描述并解释Python的变量。
● 能理解Python变量的赋值运算。
● 能掌握变量赋值的注意事项。
2.1.1 变量相关知识
变量,来源于数学,是计算机语言中能储存计算结果或者能表示数值的抽象概念。变量是代表某个数据值的名称,是可变的,可以通过变量名访问数据,方便在程序中使用。
1.变量的命名规则
1)变量名应见名知意。例如,我们要设计一个关于加法的函数,需要三个变量addend_one、addend_two和addend_sum,而不要用类似a、b和c这样的表示变量名。
2)定义变量只能包含字母、数字、下划线。变量名可以字母和下划线开头,但不能以数字开头。例如,可以将变量命名为name_1,但不能命名为1_name。
3)不能将Python关键字与函数名用作变量名。关键字是程序设计语言预留的字符串,有着特定含义,一旦编译器扫描到源文件中某个变量名是用关键字命名的,就会报错。
4)谨慎使用小写字母l和大写字母O,防止被人误认为是数字1和0。
5)变量名不能包含空格,但可以使用下划线来分隔单词。例如,addend_one是可行的,但变量名addend one就会引发错误。
2.变量的注意事项
1)使用小写的Python变量名。在变量名中使用大写字母虽然不会导致错误,但最好使用小写字母作为变量名。
2)创建有意义的变量名。随着编写的程序越来越多,变量的数量也越来越大,为方便查看编写的代码,创建良好的变量名是必要的。
2.1.2 训练1:加法大作战
学习了关于变量的基本知识之后,阿短找到编程猫,想向他请教关于使用变量的问题。
编程猫
“既然提到了变量,那么就让我们从最基本的知识开始吧,先看看变量的加法”

“在上面的程序中,我们设置了两个变量,并且为这两个变量赋上了相应的值,接着将两个数相加。最后得到了正确的输出结果。”
阿短
“编程猫,如果把加数变量名定义为1_addend和2_addend,会发生什么呢?”
编程猫
“阿短,这个问题问得好,下面就让我们一起看看吧!”

注意:这三行输出的意思是“1_addend=5”有语法错误,进程结束,退出代码为1。
2.1.3 训练2:修改程序错误
编程猫
“在编程中,每个程序员都会遇到报错,但他们知道如何避免和修改错误,下面就让我们来看一个实例,学习一下如何修改错误吧!”
我们先定义一个变量message,把“hello,编程猫!”赋值给它,打印变量mesage(拼写错误的变量名)。

程序运行结果如下。

编程猫
“接下来让我们进行错误分析。”
①处表示错误出现在第二行,②处表示没有定义“mesage”这个变量,所以我们把变量名重新定义为“message”。

重新运行程序,结果如下。
hello,编程猫!
2.1.4 训练3:数据的神奇调换
编程猫
“阿短,接下来我将向你展现一个转换的魔术。”
阿短
“好的,我拭目以待。”
把牛奶、可乐和空杯赋值给杯子1、杯子2和杯子3。

程序运行结果如下。

编程猫
“阿短,你能看出来我做了些什么吗?”
阿短
“我好像看出来了,你是不是将一开始杯子1中的牛奶倒入杯子3,将杯子2中的可乐倒入杯子1,将杯子3中的牛奶倒入杯子2?”
编程猫
“没错,阿短你真棒。”