【Python】变量与内存的关系,变量指向地址,不是存储数据的盒子。

在各种教程中,变量都被描述成用于存储数据的盒子,的确,这个东西看似很正确,但看看下面这串代码:

# 定义一个列表给变量a
a = [1,2,3,4]

#将a的数据赋予给b,并打印出b看看
b = a
print(b)

# 修改a的值,并在此输出b看看
a[0] = 100
print(b)

没错,b也因为a被修改而修改,输出的结果也变成了[100,2,3,4]因此我们可以知道,变量真的不是所谓存储数据的盒子,更为接近本质的解释是:变量是值的标签,变量指向特定的值。

我们之所以能够得到上面那个代码的例子,也是因为列表这种数据容器的特殊性:可以被修改。

同样的例子放在字符串,浮点数等等都不行,原因也显而易见,不多解释啦。

再解析一下红字:标签意味着,一个值可以有多个变量(标签),就像一个人既可以是爹也可以是儿子一样,但后面说,变量指向特定的值是什么意思呢?

变量在我们看来是给要用的数据起名字,很好理解,在计算机看来则是一串地址,通过地址从而达到要用的数据,这里不得不拿出内存简单结构了:

1字节
1字节
1字节
1字节
1字节

可以把上面这个结构看作是内存,几个格组成一个完整的数据,假设这五个格就组成一个完整的数据,在无数的格子中,我们要找到这五个格子(也就是要取用数据,)它在这无数个格之间到底在哪里,这就要看它们所在的地址了,在计算机看来,变量就告诉我们了这五个格到底是在这整个格子中的哪里。所以,变量的目的是方便我们取用数据,同时也是让计算机方便取用数据。

总结一下,变量是值的一个标签,它指向了数据在内存中所在的位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值