python(1) - 变量小测试

下面看一道题目:

a = 3

b = a

a = 5

print(a,b)

程序最后输出的a,b值分别是多少呢?

先想一想,然后我们执行一下看看正确答案:

python(1) - 变量小测试

正确答案 a 的值是5, b的值是3,为什么b的值没有随a的值的变化而变化?下面分析一下原因:

这里先介绍一个函数id(), 它可以查看变量的内存地址;好了,下面开始分析:

将程序拆分一下,先将3赋给a, 然后查看一下内存地址

python(1) - 变量小测试

再将a赋给b,然后查看b的内存地址

python(1) - 变量小测试

可以看出,b和a的内存地址是一样的

再将5赋给a, 查看a的内存地址

python(1) - 变量小测试

可以看到a的内存地址发生了变化,a指向了一个新的内存地址。

整个过程如下图所示:

python(1) - 变量小测试

上一篇:C++ sort使用自定义函数的一些坑


下一篇:洛谷 P3962 [TJOI2013]数字根 解题报告