2.1 变量及标识符

变量是计算机编程中的重要概念,变量的概念来源于数学,它是一个存储在计算机内存中的值。当声明一个变量时,相当于在计算机内存中开辟了一个存储空间,并使用变量对该空间进行命名,然后就可以通过引用该变量名来使用这块存储空间了。

图2-1 变量在内存中的存储

可以将内存想象为一列小盒子,每个小盒子上都有一个可以放置变量名称的地方,当声明一个变量时,解释器会分配指定的小盒子,并且将该盒子的名字设置为指定的变量名,根据变量的类型将符合条件的数值放到小盒子中。

要获取某个数值时,只需找到对应变量名的盒子,再打开盒子就可以取出对应的数值了。

如图2-1所示,有3个盒子,分别为变量abc,盒子中对应存放的数分别为4、1、8,想要使用4时,只需找到变量名为a的盒子,将其打开就可以获得4。同理,想要使用1时,找到变量名为b的盒子,将其打开就可以获得对应的数值了。

与其他编程语言不同的是,Python使用变量前不需要声明,变量的类型也不需要声明,可以直接使用,代码如下:

注意 在Python程序中“=”号不是相等的意思,而是赋值的意思。a=1应该且必须理解为将数值1赋给变量a,而程序中相等的符号是“==”,由两个等号代替。

这样在内存里就有了一个变量a,它的值为1,类型是整数。在此之前无须对变量a进行声明,也无须对变量a的数据类型进行声明。

Python在使用变量前,必须对变量进行赋值,即使将一个空值赋给变量都可以,因为Python没有默认值。注意区分声明和赋值,代码如下:

在使用变量b和变量c之前,必须对变量bc进行赋值,否则程序就会产生错误。在给变量赋值时除了可以为单个变量赋值以外,还可以同时为多个变量进行赋值,代码如下:

也可以同时为多个变量赋不同的值,代码如下:

在Python语言中,变量有多种类型,可以使用type()函数来查看变量的数据类型,代码如下:

前文使用了一些简单的字符(标识符)作为变量名,例如abcd等,变量名也可以是更为复杂的一些标识符,例如HelloWorld、bianliang、K8s66f、_n等,代码如下:

在Python中,变量名(标识符)只能是由字母、数字和下画线(下画线是在英文输入法状态下,由Shift键加“-”键输出的字符)组成的一串字符串,中间不可以有空格或者其他字符,且不能以数字开头。

HelloWorld、bianliang、K8s66f、_n、j_e3等都是合法的变量名,而Hello World、8Ks、&GH、∗rr、ek@qq等就不是合法的变量名了。

Python的标识符是区分大小写的。例如Hello与hello在Python中会被认为是两个不同的变量名,代码如下:

Python语言内含有一些保留的关键字,这些关键字不能用作任何标识符,可以通过代码来查看Python保留的关键字,代码如下:

输出结果为:

['False','None','True','__peg parser__','and','as','assert','async','await','break','class','continue','def','del','elif','else','except','finally','for','from','global','if','import','in','is','lambda','nonlocal','not','or','pass','raise','return','try','while','with','yield']

在定义标识符的时候,需要避开以上这些保留的关键字。

想要删除已经创建过的变量,可以使用del()函数进行删除,代码如下:

通常情况下,并不需要主动地去删除某个变量,当变量不被程序使用时,Python的垃圾回收机制会自动将不再使用的变量进行回收。

在Python程序中,py文件单独执行时,按照自上而下的顺序进行执行。相同标识符的变量,在执行的时候下方的变量会将上方的变量覆盖,代码如下: