深入了解python常量与变量

描述

  2.1 python常量与变量

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

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

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

  1. 变量不需要声明类型

  Python 的变量和常量不需要事先声明类型,这是根据Python的动态语言特性而来。

  例如下面的 age 和 name 两个变量,在使用前没有进行任何的诸如 age int 和 name string 的类型声明,而这在一些静态语言中,比如 JAVA 和 Golang 中是必须的。

>>> age = 18
>>> name = "王炳明"
>>> 

  2. 赋值与比较

  Python 中 用 = 号来给变量赋值,比如下面这个表达式,age 这个变量的值就是 18

>>> age = 18

      与之相似的,新手会容易混淆的是 两个等号 == ,它表示的是比较两个值是否相等,如果相等返回 True,如果不相等返回 False

>>> age = 18
>>> age == 18
True
>>> age == 17
False

  3. 先创建再使用

  每个变量在使用前都必须赋值,变量赋值以后才会被创建。

  新的变量通过赋值的动作,创建并开辟内存空间,保存值。

 

  如果没有赋值而直接使用,会抛出变量未定义的异常。例如:

>>> age
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'age' is not defined
>>>
>>> age = 18
>>> age
18

  4. 赋值​的方式

  赋值的两种方式

  第一种:单个直接赋值

>>> age = 18
>>> age
18 

  第二种:多个批量赋值

>>> a = b = c = 1
>>> a
1
>>> b
1
>>> c
1 

  第三种:先计算再赋值

# 先计算 17+1,再把结果赋值给age
>>> age = 17+1
>>> age
18

        第四种:分别赋值

>>> a, b, c = 1, 2, 3
>>> a
1
>>> b
2
>>> c
3

  第三种:先计算再赋值

  5. 理解赋值的背后

  理解变量在计算机内存中的表示也非常重要。

  当我们写:a = "Jack" 时,Python解释器干了两件事情:

  在内存中创建了一个'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

  请牢记:Python中的一切都是对象,变量是对象的引用!:

  执行a = ‘Jack’,解释器创建字符串‘Jack’对象和变量a,并把a指向‘Jack’对象;

  执行b = a,解释器创建变量b,并且将其指向变量a指向的字符串‘Jack’对象;

  执行a = ‘Tom’,解释器创建字符串‘Tom’对象,并把a改为指向‘Tom’对象,与b无关。

字符

  6.​ 简单介绍常量

  说完变量,还要说下常量。

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

>>> PI = 3.14159265359
>>> PI
3.14159265359

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

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

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分