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会把时间短,并且内存占用比较小的值,也会放在同一块内存中。
python-面试常用 --变量、内存管理(小整数池,引用计数)的更多相关文章
- 介绍python由来, 安装python3.8.3 及其变量的定义, 小整数池
介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写能够解释Python语言语法的解释器.Python这个名字,来自Guido所挚爱 ...
- IOS内存管理「1」- 引用计数
- python的变量内存管理
一.变量的引用机制 当你在python中定义一个值,如x = 500时,python会在内存中开辟一个小地方用于存储数值. x = 500 #定义一个变量 print(id(x)) #打印该变量的内存 ...
- 编程语言和python介绍, 变量,小整数池,垃圾回收机制
1.编程语言的发展史 计算机是基于电工作(基于高.低电平)1010010101011 1.机器语言 优点:执行速度够快 缺点:开发效率非常低 2.汇编语言(通过英文字符组成) 优点:执行效率相较于机器 ...
- Python变量内存管理
目录 一.变量存哪了? 二.Python垃圾回收机制 2.1 引用计数 三.小整数池 一.变量存哪了? x = 10 当我们在p1.py中定义一个变量x = 10,那么计算机把这个变量值10存放在哪里 ...
- python垃圾回收机制与小整数池
python垃圾回收机制 当引用计数为0时,python会删除这个值. 引用计数 x = 10 y = x del x print(y) 10 引用计数+1,引用计数+1,引用计数-1,此时引用计数为 ...
- Python的小整数池
此处经常会作为面试题!!! 小整数池目的:节省内存,提高执行效率 需要注意的是:Python实现int的时候有个小整数池.为了避免因创建相同的值而重复申请内存空间所带来的效率问题, Python解释器 ...
- <Python基础>python是如何进行内存管理的
.Python 是如何进行内存管理的?答:从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制⒈对象的引用计数机制Python 内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用 ...
- Python深入:01内存管理
在Python中,一切都是指针. 一:对象三特性 所有的Python对象都有三个特性:身份,类型和值. 身份:每一个对象都有一个唯一的身份标识,任何对象 ...
随机推荐
- Java带token验证的注册登录
http://blog.csdn.net/huqingpeng321/article/details/52900550 http://blog.csdn.net/l18710006370/articl ...
- 渣渣菜鸡的 ElasticSearch 源码解析 —— 启动流程(下)
关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/08/12/es-code03/ 前提 上篇文章写完了 ES 流程启动的一部分,main 方法都入 ...
- tyvj P4877 _1.组合数
时间限制:1s 内存限制:256MB [问题描述] 从m个不同元素中,任取n(n≤m)个元素并成一组,叫做从m个不同元素中取出n个元素的一个组合:从m个不同元素中取出n(n≤m)个元素的所有组合的个数 ...
- css常用操作
对齐操作 1.使用margin属性进行水平对齐 margin-left:auto; margin-right:auto; 2.使用position属性进行左右对齐 3.使用fl ...
- angularJS在移动端的点击事件延迟问题
在运用angular开发移动端的应用时,发现它并没有将ng-click做兼容,在移动端使用ng-click事件仍然会有300ms延迟.后来发现angular有一个专门针对移动端的模块:angular- ...
- SharePoint 2013 安装配置(3-1)
在第二部分中,我向您展示了如何在Windows Server 2012 R2 for SharePoint 2013上设置Active Directory域服务.现在我们应该能够在Active Dir ...
- Windows Azure 配置Active Directory 主机(4)
步骤 6:设置在启动时加入域的虚拟机 若要创建其他在首次启动时加入域的虚拟机,请打开 Windows Azure PowerShell ISE,粘贴以下脚本,将占位符替换为您自己的值并运行该脚本. 若 ...
- 修改wamp的数据库密码
方法/步骤 一:修改数据库密码 1.点开MySQL console进入数据库编辑框,然后按回车键,会出现图2的效果. 2.接着输入“use mysql” 下面提示“Database chang ...
- Unity runtime性能分析器
一. Profiler: 1. CPU Usage A. WaitForTargetFPS: Vsync(垂直同步)功能所,即显示当前帧的CPU等待时间 B. Overhead: Profiler总体 ...
- UVA 714 Copying Books 抄书 (二分)
题意:把一个包含m个正整数的序列划分成k个非空的连续子序列.使得所有连续子序列的序列和Si的最大值尽量小. 二分,每次判断一下当前的值是否满足条件,然后修改区间.注意初始区间的范围,L应该为所有正整数 ...