python学习日记--变量与常量

1、变量(variable)

变量是计算机内存中的一块区域,在python中,内容可以任意改变。变量在内存中创建时会包括变量名、变量标示和变量的值三种信息。

如以下代码段:

a=12          # a 自然是变量名;可以用 print( id(a) ) 来查看变量标示;12就是变量值了。

print(a)

a=32

print(a)

        可以看到两次的输出结果分别是12和32,但是在这里要提一下变量和内存的关系。在python中,变量和内存是一种链接关系,在上例中,第一行代码使  a  指向了 12 所存储的内存区域;但是第三行代码中改变了这种指向,使得  a  指向了  32  所存储的区域,所以在后面代码中使用 a 时,其值就是 32.

        出于节约内存的考虑,在更改变量的值(即更改变量的指向)之前,可以使用下面两种办法释放内存:

(1) a = none

(2) del  a

        第一种方法不会彻底清除变量定义留下的影响,还会留下一个变量名;第二种方法就比较彻底。但是一般变量占用的内存都不会对程序运行产生太大的影响,毕竟现在内存很便宜,所以也没要随时清理。

1.1 变量的分类

        变量分为全局变量 和 局部变量

        1.1.1 全局变量

        全局变量是具有广泛共享性的变量。(1) 在同一份文件中,它可以被不同的函数或类使用和改变;(2) 在所处文件之外,它又可以被外部文件访问。可以说,在某份文件中,在函数或类之外定义的变量都是全局变量。全局变量的生命周期总被定义开始到文件结束。

        如:  

        var = 21   #此处var就是全局变量

        def  func():

                print( var )

                var = 67

        print( var )

        输出为:

        21

        67

        可以看到,全局变量在经历过一个函数后,数值已经被改变了。

        因此,在使用过程中建议尽量避免使用全局变量,就是由于各个函数和模块都可以改变全局变量,在复杂的程序中,会出现全局变量值的不可预知性。比如函数1使用并改变了全局变量var,但函数2需要使用 var 改变之前的值,就会产生麻烦。

        1.1.2 局部变量

        局部变量是在函数体内或类体内定义的变量,其生命周期从定义开始到函数或类结束。如:

        def  func():

                local_var = 99

                print( local_var )

        print( local_var )  #程序在此处会报错。

        其中  local_var 就是局部变量,在函数体外使用时就会产生错误,因为局部变量所在的函数结束时,其生命便完结了。

2、常量(constant)

        常量也是在内存中开辟出来的一块区域,不过这块区域是只读的,因此常量一旦定义,就不能再修改。单独的数字、字符串等都属于常量。在python里面没有特定的关键字来定义常量,其实在科研工作中,也没必要特别把常量和变量区分开。

你可能感兴趣的:(python学习日记--变量与常量)