Python变量在计算机内存中的表示

转自:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431658624177ea4f8fcb06bc4d0e8aab2fd7aa65dd95000

当我们写:

a = ‘ABC‘

时,Python解释器干了两件事情:

  1. 在内存中创建了一个‘ABC‘的字符串;
  2. 在内存中创建了一个名为a的变量,并把它指向‘ABC‘

也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据,例如下面的代码:

a = ‘ABC‘
b = a
a = ‘XYZ‘
print(b)

最后一行打印出变量b的内容到底是‘ABC‘呢还是‘XYZ‘?如果从数学意义上理解,就会错误地得出ba相同,也应该是‘XYZ‘,但实际上b的值是‘ABC‘,让我们一行一行地执行代码,就可以看到到底发生了什么事:

执行a = ‘ABC‘,解释器创建了字符串‘ABC‘和变量a,并把a指向‘ABC‘

执行b = a,解释器创建了变量b,并把b指向a指向的字符串‘ABC‘

执行a = ‘XYZ‘,解释器创建了字符串‘XYZ‘,并把a的指向改为‘XYZ‘,但b并没有更改:

所以,最后打印变量b的结果自然是‘ABC‘了。

时间: 2025-01-08 13:28:20

Python变量在计算机内存中的表示的相关文章

python ——变量中计算机内存中的表示

最后,理解变量在计算机内存中的表示也非常重要.当我们写: a = 'ABC' 时,Python解释器干了两件事情: 在内存中创建了一个'ABC'的字符串: 在内存中创建了一个名为a的变量,并把它指向'ABC'. 也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据,例如下面的代码: a = 'ABC' b = a a = 'XYZ' print b 最后一行打印出变量b的内容到底是'ABC'呢还是'XYZ'?如果从数学意义上理解,就会错误地得出b和a相同,也应该是

浮点数在计算机内存中的存储方式

在计算机内存中,float型数据占4个字节,double型占8个字节,它们在计算机中的存储分为三个部分: 符号位:0代表正,1代表负. 指数位:将一个二进制数用科学计数法表示之后指数的值. 尾数位:用科学计数法表示的前面的数. 其中存储的方式如图 double型的数据存储方式与之类似,只不过能表示更大的数位 现在就用float型的数据来举例吧. 比如,12.5f为一个float型的浮点数,先把它转化为二进制数为1100.1,用科学计数法表示为1.1001*2^3.现在就可以表示把这个二进制数分为

JavaScript 变量类型 保存内存中的位置 和 引用

1. JavaScript变量 基本类型值在内存中占据固定大小的空间 因此被保存在栈内存中. 从一个变量向另一个变量复制基本来下的值 会创建这个值得一个副本. 引用类型的值是对象 保存在堆内存中. 包含引用类型值得变量实际上包含的并不是对象本身 而是一个指向该对象的指针. 从一个变量向另一个变量复制引用类型的值 复制的其实是指针 因此两个变量最终都指向同一个对象 2. 堆和栈 堆栈在数据结构里面的含义就是一组数据的存放方式 后进先出 push: 在最顶层加入数据 pop: 返回并移除最顶层的数据

计算机内存中浮点数的表示

浮点概念的引入 在计算机系统的发展过程中,曾经提出过多种方法表达实数.比如定点数表示法, 这种表示方法将小数点的位置固定在某一个位置,比如: 11001000.00110001,这个16位(2字节) 的定点数用前面8位表示整数部分,后面8位表示小数部分,这种方法直观,但是固定的小数点位置决定了固定位数的整数部分和小数部分,不利于同时表达特别大的数或者特别小的数.最终,绝大多数现代计算机遵循IEEE754,即IEEE二进制浮点数算数标准,利用科学计数法来表达实数,即用一个尾数(Mantissa o

arcgis python 使用光标和内存中的要素类将数据加载到要素集

使用光标和内存中的要素类将数据加载到要素集 import arcpy arcpy.env.overwriteOutput = True arcpy.ImportToolbox("http://flame7/arcgis/services;BufferByVal", "servertools") # List of coordinates coordinates = [[-117.196717216, 34.046944853], [-117.186226483, 3

python 保存ipython的内存中的变量以便下次启动时使用

保存 from save_ipython_variables import load_all_variables, save_variable save_variable('pa_patmas', pa_patmas) save_variable('dhc_workload', dhc_workload) #put it into pickle for further use 读取 load_all_variables()

程序代码和数据(变量)在内存中的存放

以下的资料还行,不过不是最好的,记得有一个文章写得很好.有时间再找. http://www.360doc.com/content/18/0127/15/48169514_725531488.shtml https://blog.csdn.net/nyist_zxp/article/details/80257760 原文地址:https://www.cnblogs.com/doker/p/11734274.html

python入门课程 第3章 Python变量和数据类型

第3章 Python变量和数据类型3-1 Python中数据类型计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定义不同的数据类型.在Python中,能够直接处理的数据类型有以下几种:一.整数Python可以处理任意大小的整数,当然包括负整数,在Python程序中,整数的表示方法和数学上的写法一模一样.计算机由于使用二进制,所以,有时候用十六进制表示整数比较

python变量、运算符、表达式、数据类型

一.变量 变量是计算机内存中的一块区域,存储规定范围内的值,值可以改变,通俗的说变量就是给数据起个名字 1.变量的命名 变量名有字母.数字.下划线组成 数字不能开头 不可以使用关键字 举例:a,a1,a_1 2.变量的赋值 变量的赋值就是变量声明和定义的过程 举例:a=1 3.变量分类 不可变变量:数字.元组().字符串(值变的时候会指向一个新的地址) 可变变量:列表[].字典{}(值变,id不变) 举例: zhzhgo=25定义变量zhzhgo的值为25 id(zhzhgo)查看变量zhzhg