变量与常量
变量:在程序运行过程中,值会发生变化的量
常量:在程序运行过程中,值不会发生变化的量
无论是变量还是常量,在创建时都会在内存中开辟一块空间,用于保存它的值。
这里有一点需要注意的是,在python中是不需要声明类型的。这是根据python的动态语言特性而来。变量可以直接使用,而不需要提前声明类型。
变量的定义python 中的变量不需要声明类型
这些变量都是不需要声明它的类型的,在c和java中是必须要声明的。这里的=是赋值而不是等于的意思。每个变量在使用前都必须赋值,变量赋值以后才会被创建。如果一个变量没有赋值,直接用的话。系统会报出错误
这里的等号要理解并读作“赋值”,而不是“等于”,“赋值”是对变量的操作,而“等于”是对两个变量进行比较。
每个变量在使用前都必须赋值,变量赋值以后才会被创建
新的变量通过赋值的动作,创建并开辟内存空间,保存值。如果没有赋值而直接使用会抛出赋值前引用的异常或者未命名异常
python中,一切事物都是对象,变量引用的是对象或者说是对象在内存中的地址。
后面我们详细来讲解
在python中,变量本身没有数据类型的概念
通常所说的“变量类型”是变量所引用的对象的类型,或者说是变量的值的类型
例子中,变量a在创建的时候,赋予了值为1的整数类型,然后又被改成字符串“haha”,再又变成一个列表,最后是个字典。变量a在动态的改变,它的值分别是不同的数据类型,这是动态语言的特点。
“=”号这个赋值运算符是从右往左的计算顺序。
python允许同时为多个变量赋值。
当我们写:
a = 'abc'时,python解释器干了两件事情:
1.在内存中创建了一个‘abc’的字符串对象;
2.在内存中创建了一个名为a的变量,并把它指向'abc'。
思考
执行a = ‘jack’,解释器创建字符串‘jack’对象和变量a,并把a指向‘jack’对象;
执行b = a,解释器创建变量b,并且将其指向变量a指向的字符串‘jack’对象;
执行a = ‘tom’,解释器创建字符串‘tom’对象,并把a改为指向‘tom’对象,与b无关。
常量
最后我们还要说下常量!
常量就是不变的变量,比如常用的数学常数圆周率就是一个常量。在python中,通常用
全部大写的变量名表示常量:
pi = 3.14159265359
但事实上,从python语法角度看,pi仍然是一个变量,因为python根本没有任何机制保证pi不会被改变。你完全可以给pi赋值为10,不会弹出任何错误。所以,用全部大写的变量名表示常量只是一个习惯上的用法。