欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python-面试常用 --变量、内存管理(小整数池,引用计数)

程序员文章站 2022-07-11 09:15:05
内存管理、引用计数、、Python的垃圾回收机制、小整数池、执行Python程序的两种方法、变量、常量、 ......

执行python程序的两种方法

第一种:交互式(jupyter就是对这种进行了封装)

  • 优点:直接给出结果
  • 缺点:无法保存

第二种:命令行式,通过python解释器输入文本(pycharm对这种进行了封装)

  • 优点:可以保存
  • 缺点:无法及时得到报错反馈

命令行式可以识别任何文本文件,例如:.txt文件、.py文件。

命令行式打开的三个步骤

  • 编写python文件
  • 找到python文件的路径,把文本从硬盘中读入内存
  • 在内存运行并进行解释(这个时候才会有python语法的概念,才会打印)

变量

什么是变量

变量:一种描述世间万物的状态

python中定义变量

name = 'rayn'
#变量名  赋值符号  变量值
  • 变量名:用来引用变量值,凡需要用变量值,都需要通过变量名
  • 赋值符号:赋值
  • 变量值:存放数据,用来记录现实世界中的某种状态

变量名的命名规范

  • 变量名应该能反映变量值所描述的状态
  • 变量名必须用字母、数字、下划线组合;并且变量名的第一个字符不能是数字,也不能是下划线
  • 关键字不能成为变量名

两种定义变量名的方式

下划线式(推荐用这种,清晰、明了)

rayn_height = 180
print(rayn_height)
180

驼峰体

raynheight = 180
print(raynheight)
180

常量

固定不变的两

定义常量

  • python中没有严格意义上的常量,常量也能更改,但是不建议;常量是人们约定俗成的,最好不要更改
  • python中常量名用大写字母来表示
rayn_height = 180

注释有什么用

  • 取消python的语法,让#后面的字符变成普通的字符
  • 解释代码块的意思

注释的原则

  • 不用全部加注释,只需要在自己觉得重要或者不好理解的部分加注释即可
  • 注释可以用中文或英文,但不要用拼音

内存管理

变量:接收变量值,描述世间万物变化的状态

而变量是如何在内存中创建的?

当我们写一个文件,文件是保存在硬盘里的,只有python解释器运行了这个文件,那字符进入了内存,才会有变量这个概念,也就是说变量是存放在内存当中的。在内存中,我们每定义一个变量,就会在内存中开辟一块内存空间来给变量值,而变量名就是个名牌来指向变量值。

引用计数

  • 引用计数是针对变量值的
x = 257  # 257的引用计数加1,为1
y = x    # 257的引用计数加1 为2
x = 258  # 257的引用计数减1 为1
del y    # 257的引用计数减1 为0 ,触发python垃圾回收机制,清理257的内存占用

python的垃圾回收机制

  • 当变量值的引用计数为0的时候,python会自动回收该变量值的内存占用

小整数池

  • 在python中,因为[-5,256]之间的整数经常被用到,所在在python启动的那一刻,就会开辟一块内存空间放入这些整数,它不会被垃圾回收机制回收。

而我们时常碰到不在小整数池中的值,有时打印的内存地址也是一样的,这个主要是jupyter和pycharm会把时间短,并且内存占用比较小的值,也会放在同一块内存中。