四、变量和常量
变量是用来存储程序运行期间需要临时保存可以不断改变的数据的标识符。Python有自身的内存回收机制,所以在开发过程中不用考虑变量的销毁等
Python中的变量名命名有如下规则:
1、变量名必须是字母、数字和下划线的组合
2、数字不能开头
3、不能使用Python保留的关键字入print、id等(注意这个不是Python强制的,但是如果使用关键字定义了会是改变关键原来的用途)
关于变量名的一些建议:
1、变量名最好有意义,尽量不要使用a = 1, x = 'ABC',var = 1等这样没有意义的变量名
2、如果使用多个单词组成,可以使用下划线_相连如lucky_num,或驼峰法如luckyNum等。
3、无论使用下划线或或驼峰表示法,在程序里最好保持风格统一,要么全用下划线,要么全用驼峰
另外需要说明的是Python是动态预先,也即是说在定义变量的时候不用指定变量的的数据类型,Python会在个变量赋值的时候自动改变变量的数据类型。
在Python里,没有专门的常量定义,所谓的常量也是可以修改的,除非你要给自己找trouble。我们约定俗成使用全部大写字母的变量名入PI = 3.14
Python和其他静态语言如C等不同的是Python的变量在赋值的时候解释器先在内存中创建数据对象,然后再创建变量,并把变量指向之前创建的数据对象。有点像C语言的指针,所以也有人说Python虽然没有指针这个概念,但一切皆指针
例如a = 'ABC',解释器先创建了字符串对象'ABC'和变量a,然后把a指向'ABC',如图所示
当我们有声明了一个变量b,并把a赋值给b,即b = a,Python解释器有创建了b,并把b指向a所指向的字符串'ABC',如下图所示
最后当我们将变量a赋予新的值'XYZ'的时候,即 a = 'XYZ'的时候,解释器又创建字符串'XYZ',并把a指向改为'XYZ',这个过程完全和b没有关系