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

最后,理解变量在计算机内存中的表示也非常重要。当我们写:

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‘了。

时间: 2024-08-11 01:23:28

python ——变量中计算机内存中的表示的相关文章

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

转自:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431658624177ea4f8fcb06bc4d0e8aab2fd7aa65dd95000 当我们写: a = 'ABC' 时,Python解释器干了两件事情: 在内存中创建了一个'ABC'的字符串: 在内存中创建了一个名为a的变量,并把它指向'ABC'. 也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量

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

在计算机内存中,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

【原创】二级指针中在内存中的样子

长话短说,只要能理解指针,基本上二级指针就很好理解了. 看看下面的栗子: int a,b; int array[10]; int *pa; pa=&a; //&a 是一个指针表达式. Int **ptr=&pa; //&pa 也是一个指针表达式. *ptr=&b; //*ptr 和&b 都是指针表达式. pa=array; pa++; //这也是指针表达式. OK.如果你还不理解就调试一下,看看内存中的样子和汇编就明白了. 00BE3C05 89 45 FC

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

android 中在内存中保存文件

以一个登陆的例子来将,将登陆时的信息保存在指定目录的文件中.在第一次登陆后,对用户名等在内存文件中保存. android界面: 界面: 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_paren