变量与常量


# 变量与常量

变量:在程序运行过程中,值会发生变化的量。

常量:在程序运行过程中,值不会发生变化的量。

无论是变量还是常量,在创建时都会在内存中开辟一块空间,用于保存它的值。

# 变量

在 Python 中,变量需要下面几点特性:

  • Python 中的变量不需要声明类型。
  • 每个变量在使用前都必须赋值,变量赋值以后才会被创建。
  • Python 中,一切事物都是对象,变量引用的是对象或者说是对象在内存中的地址。
  • Python 中,变量本身没有数据类型的概念,通常所说的「变量类型」是变量所引用的对象的类型,或者说是变量的值的类型。

上面第二条很重要:Python 中的一切都是对象,变量是对象的引用

举个例子:

  • 执行 s1 = '张三' ,解释器创建字符串 '张三' 对象和变量 s1,并把 s1 指向 '张三' 对象;
  • 执行 s2 = s1,解释器创建变量 s2,并且将其指向变量 s1 指向的字符串 '张三' 对象;
  • 执行 s1 = '李四',解释器创建字符串 李四 对象,并把 s1 改为指向 李四 对象,与 s2 无关。
s1内存中的变量"张三"内存中的对象s1内存中的变量"张三"内存中的对象s2s1内存中的变量"张三"内存中的对象s2"李四"123

(一切都是对象,变量是对象的引用)

# 常量

常量就是不变的变量,比如常用的数学常数圆周率就是一个常量。在 Python 中,通常用全部大写的变量名表示常量:

PI = 3.14159265359
1

但事实上,从 Python 语法角度看,PI 仍然是一个变量,因为 Python 根本没有任何机制保证 PI 不会被改变。你完全可以给 PI 赋值为 10,不会弹出任何错误。所以,用全部大写的变量名表示常量只是一个习惯上的用法。

常量通常放置在代码的最上部,并作为全局使用。

(完)