
2.1 常量与变量变量在程序运行过程中值会发生变化的量常量在程序运行过程中值不会发生变化的量不管是变量, 还是常量, 在构造的时候都要于内存里开拓一片区域, 用以存放它的值。1. 变量不需要声明类型变量, 不需要事先声明类型, 常量, 同样不需要事先声明类型, 这是依据动态语言特性而产生的结果。举个例子, 存在age以及name这两个变量, 在运用之前, 并未开展任何像age int以及name这样的进行类型声明的操作, 然而这在某些静态语言当中, 比如说JAVA以及当中, 却是必不可少的。 age 18 name 王炳明 2. 赋值与比较在进行变量赋值操作时, 是运用 号来达成的, 就像下面所呈现的这个表达式那样, age 这个变量所对应的数值便是 18。 age 18跟它类似的, 刚接触的人会较易弄混的, 是那两个等号 , 它起到的作用, 是去比较两个值是不是相等, 要是相等的话就返回 True , 要是不相等的时候则返回 False。 age 18 age 18 True age 17 False3. 先创建再使用每个变量在使用前都必须赋值变量赋值以后才会被创建。新的变量通过赋值的动作创建并开辟内存空间保存值。如果没有赋值而直接使用会抛出变量未定义的异常。例如 age Traceback (most recent call last): File , line 1, in NameError: name age is not defined age 18 age 184. 赋值的方式赋值的两种方式第一种单个直接赋值 age 18 age 18第二种多个批量赋值 a b c 1 a 1 b 1 c 1第三种先计算再赋值# 先计算 171再把结果赋值给age age 171 age 18第四种分别赋值 a, b, c 1, 2, 3 a 1 b 2 c 3第三种先计算再赋值5. 理解赋值的背后理解变量在计算机内存中的表示也非常重要。当我们写a Jack 时解释器干了两件事情在内存中创建了一个Jack的字符串对象;在内存中创建了一个名为a的变量并把它指向 Jack。在你把一变量a赋予给另一变量b之时, 此操作事实上是让变数b指向变量a所指向的数据体, 比如说下面这段代码: a Jack a Jack b a b Jack id(a) 4332916664 id(b) 4332916664运用id() 能够查看变量值所对应的内存地址打印出来的有关a的内存地址, 与打印出来的关于b的内存地址是一样的, 所以二者实际上是同一个数据。然而要是持续针对a赋予别的值, 就能够发觉, a的内存地址发生了改变, 可是b的内存地址却并未产生变化。 a Tom a Tom id(a) 4332974128 id(b) 4332916664请牢记中的一切都是对象变量是对象的引用!执行a ‘Jack’, 在此过程之中, 解释器去创建字符串‘Jack’对象, 同时, 还创建变量a , 并且, 把这个a指向‘Jack’对象。解释器创建变量b, 执行b a时, 变量b会被指向变量a所指向的字符串‘Jack’对象。进行a等于‘Tom’的操作时, 解释器创立字符串‘Tom’的对象, 并且将a变更为指向‘Tom’对象的状态, 这同b没有关联。6. 简单介绍常量说完变量还要说下常量。有些变量其实本质是稳定不变的常量, 就像数学里常用的圆周率这个常数就是常量, 在相关部分中, 常量通常会被设定为用全大写字母的变量名来表示。 PI 3.14159265359 PI 3.14159265359可是实际上, 就语法层面而言, PI依旧是个变量, 鉴于压根不存在任何机制能确保PI不被更改。你固然能够把PI的值设为10, 且不会弹出任何差错。所以呀, 使用全大写的变量名来代表常量仅仅是一种习惯上的运用方式。常量通常放置在代码的最上部并作为全局使用。