python变量的内存管理

  1. 简述执行Python程序的两种方式以及他们的优缺点:

    交互式(jupyter)

    优点:运行一句执行一句

    缺点:关闭即消失

    命令行式(pycharm)

    优点:一直保存

    缺点:全部写完才能调试bug

  2. 简述Python垃圾回收机制:

    ​ 对于p1.py,如果我们再加上一段代码x = 11,大内存会开辟另一个小空间存储变量值11,把变量值绑定另一个门牌号x,但是由于之前有x,所以大内存会解除x与10的连接,让x与11连接。这个时候10由于没有了门牌号,所以成为了python眼中的垃圾,python就会处理这个垃圾,释放10的内存占用,这就是python的垃圾回收机制。而其他语言需要手动把10的内存占用释放掉。

  3. 对于下述代码:

x = 10
y = 10
z = 10
del y

10的引用计数为多少?

答:10的引用计数为2

x = 257
y = x
del x
z = 257

x对应的变量值257的引用计数为多少?

答:x对应的变量值257的引用计数为 1

  1. 简述Python小整数池概念:

    答:[-5,256]在python解释器启动的时候就自动开辟,所以说他不会受垃圾回收机制的影响,适用于jupyter

  2. 对于x = 10,请用Python代码分别打印变量值、变量值内存地址和变量数据类型:

x = 10

print(x)

print(id(x))

print(type(x))

  1. 对于下述代码:
x = 257
y = x
z = 257

请判断x、y、z的变量值是否相同?x、y、z的所在的内存地址是否相同?请用python代码阐述为什么?

x,y,z的变量值是相同的。 x和y的内存地址是相同的,但z的地址和x,y不同。

print(x is y) # True

print(x is z) # False

  1. 通过预习写一个猜年龄游戏,需求:给定一个标准年龄,用户通过输入年龄判断年龄是否等于标准年龄,如果等于——打印猜对了;如果小于——打印猜小了;如果大于——打印猜大了

    ​ x= 12

    ​ y = input('请输入要猜的年龄:')

    ​ if y == x :

    ​ print('猜对了')

    ​ else :

    ​ if y > x :

    ​ print('猜大了')

    ​ else:

    ​ print('猜小了')

posted @ 2019-07-29 19:26  cheng825  阅读(306)  评论(0编辑  收藏  举报