目录

  • 变量

    • 1.什么是变量
    • 2.为什么有变量?
    • 3.定义变量
    • 4.变量的组成
    • 5.变量名的命名规范
    • 6变量名的两种风格
  • 常量
  • Python变量内存管理
    • 1.变量存哪儿?
    • 2.Python垃圾回收机制
      • 2.1 引用计数
    • 3.小整数池
  • 变量的三个特征
  • 花里胡哨赋值
    • 1.链式赋值
    • 2.交叉赋值
  • 注释

变量

1.什么是变量

变量从字面意思可以理解成:是变化的量。但是这样理解和没有理解貌似没有什么区别,我们把变量两个字拆分看看。

我们首先来想想看你是怎么认识我的,今天来你会认识我,明天来你还会认识我。那你是不是记住我这个人的典型特征,比如我的名字Nick、体重140、身高180…世间万物我们是不是都是这样去认识的?毫无疑问是的。既然人能识别世间万物,那么我们之前一直把计算机想象成人,那是不是说计算机也能识别世间万物呢?对的。计算机通过记录我们的状态认识我。这就是量的概念。

  • 量:记录现实世界中的状态,让计算机能够像人一样去识别世间万物。

今天我可能180,明年我是不是可能就是185了(5cm不过分),那这种状态是不是会发生变化。

  • 变:现实世界中的状态是会发生改变的。

2.为什么有变量?

对于现实世界,一定是要有一个变量来描述世间万物的。但是计算机为什么也要有变量的概念呢?其实计算机中程序的运行就是一系列状态的变化,如王者荣耀中账号等级0级到30级、废铁到王者;植物大战僵尸中僵尸打着打着就死了。

3.定义变量

就是按照一定的格式赋值,具体格式就是下面对的变量组成的格式。(个人理解)

4.变量的组成

从我们上米昂定义的变量可以看到,变量的组成分为以下三个部分:

  1. 变量名:变量名用来引用变量值,但凡需要用变量值,都需要通过变量名。
  2. 赋值符号:赋值
  3. 变量值:存放数据,用来记录现实世界中的某种状态。

5.变量名的命名规范

一定要记住,定义一个变量其实就是在记录现实世界中的的状态,并且存永远不是目的,取才是目的。所以变量的命名应该满足以下三个规范:

  1. 变量的命名应该能反映变量值所描述的状态,切记不可用中文
  2. 变量名必须用字母数字下划线组合,并且变量名的第一个字符不能是数字。
  3. 关键字不能声明为变量名

6变量名的两种风格

驼峰体

下划线

常量

变量是变化的量,常量则是不变的量。python中没有使用语法强制定义常量,也就是说,python中定义常量本质上就是变量。如果非要定义常量,变量名必须全大写。

如果是常量,那就没必要更改,所以python就只制定了一个规范,而没指定常量的语法,==因此常量也是可以修改的,但不建议。==

Python变量内存管理

1.变量存哪儿?

x = 10

当我们在p1.py中定义一个变量x = 10,那么计算机把这个变量值10存放在哪里呢了?我们回顾计算机的三大核心组件为:CPU、内存和硬盘。一定不是CPU,那是存放在内存还是硬盘中了呢?我们再回顾变量运行的三个过程,如果我们没有使用python解释器运行p1.py这个文件,那么x=10很明显只是很普通的四个字符x、=、1、0。而只有Python解释器运行了这个文件,那字符进入了内存,才会有变量这个概念。也就是说变量是存放在内存当中的。

变量存放在内存中这句话太宽泛了,我们把它具体化。现在想象我们在学校(电脑内存)里上课,学校每开一个班,学校都会开辟一个教室给这个班级上课用(存放变量值10),而班级的门牌号则是(变量名x)。也就是说,对于电脑内存这个大内存,每定义一个变量就会在这个大内存中开辟一个小空间,小空间内存放变量值10,然后内存给这个小空间一个变量名x(门牌号),x指向10。

2.Python垃圾回收机制

2.1 引用计数

从上述的解释我们可以知道只要某个变量值绑定着门牌号,就不是垃圾,反之变量值没有绑定着门牌号,这个变量值就是垃圾,python就会自动清理这个垃圾。这里我们对于这个门牌号给定一个专业的解释,在python中这个门牌号被称作引用计数。

x = 10  # 10引用计数加1为1
y = x  # 10引用计数加1为2
x = 11  # 10引用计数减1为1;11引用计数加1为1
del y  # 10引用计数减1为0,触发python垃圾回收机制,python清理10的内存占用

上述代码就是一个引用计数加减的过程。

3.小整数池

在pycharm中运行python程序时,pycharm出于对性能的考虑,会扩大小整数池的范围,其他的字符串等不可变类型也都包含在内一便采用相同的方式处理了,我们只需要记住这是一种优化机制,至于范围到底多大,无需细究。

变量的三个特征

打印 :==print==

判断变量值是否相等:==name1 == name2==

判断变量id是否相等:==整数池范围内的返回值都是True,但是不在的如果是一个一个赋值的返回的是False,如下:==

x = 257
z = 257print(x is z)
# False

花里胡哨赋值

1.链式赋值


a = 10
b = 10
c = 10
d = 10
#可以写为
a = b = c = d = 10
#输出结果一样

2.交叉赋值

a = 10
b = 100#可以写为
a , b = 10,100
#输出结果一样

注释

就是方便你看的和别人看的 ,核心就是==#==

转载于:https://www.cnblogs.com/xiongchao0823/p/11264512.html

变量 常量 Python变量内存管理 赋值方式 注释相关推荐

  1. python对变量和值的管理方式_变量 常量 Python变量内存管理 赋值方式 注释

    变量 1.什么是变量 变量从字面意思可以理解成:是变化的量.但是这样理解和没有理解貌似没有什么区别,我们把变量两个字拆分看看. 我们首先来想想看你是怎么认识我的,今天来你会认识我,明天来你还会认识我. ...

  2. python释放变量内存_python解释器安装,运行python程序的方式及程序运行的步骤,变量与自动的内存管理...

    一.python解释器安装 ps: 注意设置环境变量(文件是操作系统的概念,操作系统优先在当前文件夹找,找不到就到环境变量path找) python解释器不兼容 解释器下载官网:http://pyth ...

  3. Python变量的理解与内存管理

    Python变量与内存管理 –与C语言中的变量做对比,更好的理解Python的变量. 变量 变量在C语言中 全局变量:其存放在内存的静态变量区中. 局部变量:代码块中存放在内存的代码区当中,当被调用后 ...

  4. python中内存管理机制一共分为多少层_python 内存管理机制

    内存管理机制 ​python中万物皆对象,python的存储问题是对象的存储问题,并且对于每个对象,python会分配一块内存空间去存储它 ​Python的内存管理机制:引入计数.垃圾回收.内存池机制 ...

  5. Python的内存管理、命名规则、3个特性讲解

    理解变量: 变:现实世界中的状态是会发生改变的 量:衡量/记录现实世界中的状态,让计算机能够像人一样去识别世间万物(例如:一个人的身高.体重等这些信息) 为什么要变量: 程序执行的本质就是一系列状态的 ...

  6. python内存管理和释放_《python解释器源码剖析》第17章--python的内存管理与垃圾回收...

    17.0 序 内存管理,对于python这样的动态语言是至关重要的一部分,它在很大程度上决定了python的执行效率,因为在python的运行中会创建和销毁大量的对象,这些都设计内存的管理.同理pyt ...

  7. Python的内存管理以及垃圾回收

    参考:http://www.cnblogs.com/CBDoctor/p/3781078.html 先从较浅的层面来说,Python的内存管理机制可以从三个方面来讲 (1)垃圾回收 (2)引用计数 ( ...

  8. Python的内存管理与垃圾回收机制

    在使用真格量化时,一些用户希望了解如何来提高系统性能.通过了解Python的内存管理和垃圾回收机制,我们可以有针对性地去提高策略代码性能. Python内存管理机制 Python的内存管理机制:引入计 ...

  9. 一篇搞懂python的内存管理

    目录 python的内存管理 一.引用计数 1.1 python是一种动态类型, 所以需要引用计数 1.2 引用计数 1.3 引用计数无法解决 循环引用 二.垃圾回收 2.1 垃圾回收,为了解决引用计 ...

最新文章

  1. 035_使用Enumeration遍历Vector元素
  2. matplotlib关于坐标轴数据显示的几个重要参数
  3. 前、中、后缀表达式概述及转换+栈的计算器原理及代码分析(含完整源码)
  4. 深度学习之基于卷积神经网络(VGG16)实现性别判别
  5. ARMV8 datasheet学习笔记3:AArch64应用级体系结构之Memory order
  6. insert oracle用法,insert into select的实际用法,insertselect
  7. [译]C#控制管理VisualSVN Server
  8. 键盘拆开重新安装步骤_键盘拆卸后怎么安装?
  9. 免费下载中国知网、万方学术论文的几种方法(福利合集)
  10. 显卡a卡和n卡的区别
  11. win10文件夹全屏的快捷键
  12. php数据库无法插入数据,php无法插入数据怎么办
  13. 男士不得不看的21种经典拍照姿势
  14. win10系统登录和服务器,win10系统如何登录服务器地址
  15. 精准身份证号验证的具体实现方法 校验码计算逻辑
  16. 美团“互联网下半场”的筹码:豪赌B端业务
  17. yarn computed integrity doesn‘t match our records 错误
  18. 计算机编码与解码编码表
  19. 致我终将逝去的青春——毕业后的我
  20. Qt Widgets、QML、Qt Quick 的区别

热门文章

  1. CF1097D Makoto and a Blackboard(期望)
  2. 结对项目-四则运算 “软件”之升级版
  3. iptables日志探秘
  4. pre标签 首行会自动换行解决方案
  5. Apache下PHP的几种工作方式
  6. xcode编译Undefined symbols for architecture i386问题解决
  7. Strong Consistency, 强一致性技术概述
  8. HDOJ2019 ( 数列有序! ) 【水题】
  9. LayoutInflater中四种类型inflate方法的介绍
  10. delphi编程模拟发送QQ2008消息!