变量

什么是变量?怎么使用(定先义,后使用)变量?

  • 什么是变量?怎么使用(定先义,后使用)变量?
    • 会变化量的量,即为某一项数值赋予状态。
    • 格式:变量名 赋值符号 变量值/age = 20
      python的变量与垃圾回收机制_数据

eg
python的变量与垃圾回收机制_变量名_02

如何理解变量的原理是什么?

python的变量与垃圾回收机制_数据_03

  • 遇到赋值符号先看符号右边的再看左边的

在内存空间中申请一块内存空间存储20,将20所在的内存空间地址绑定给变量名age,之后如果要访问20就通过变量名age访问即可

常量

  • 顾名思义,常量用于记录不变的量,但由于python的特数字,这门语言并没有真正意义上的常量,而我们墨守成规的遵循字母全为大写的为常量。
    但在其他语言存在定义为常量之后便无法更改。

命名规范

  • 变量名只能由数字、字母、下划线任意组合
  • 其他字符均不可
    eg:user@name(不对)、_(可以)、pwd_123_aaa(可以)
    • 变量名不能以数字开头,下划线建议不要开头因为有特殊含义
    • 变量名不能与关键字(如:print )冲突
    • 变量名的命名一定要做到见名知意(重要)

命名风格

  • 驼峰体
    • 大驼峰 # 所有单词首字母大写
      UserNameFromDb
    • 小驼峰 # 第一首字母小写其余首字母大写
      userNameFromDB
      """JavaScript推荐使用驼峰体"""
    • 下划线 # 单词与单词之间下划线隔开
      user_name_from_db
      """python推荐使用下划线"""

变量三要素

  • 变量的值
  • 变量的内存地址
  • 变量的数据类型
    如图所示
    python的变量与垃圾回收机制_python_04

python底层优化

  • 当值数据量很小的时候 如果有多个变量名需要使用 那么会指向同一块地址
    • 一个变量名只能指向一个内存地址
    • 一个内存地址可以有多个变量名指向
      如图所示
      python的变量与垃圾回收机制_数据_05

垃圾回收机制

如何定义垃圾数据

  • 在内存中没有任何变量名标记的数据
  • 引用计数
    内存中变量值有变量名的绑定便不会因为计数为0就而被清除。
  • 标记清除
    当内存即将沾满的时候 python会自动暂停程序的执行 从头到尾将内存中数据进行扫描
    并打上标记,之后一次性清除掉标记的数据
  • 分代回收
    会将数据的监管分为三个层次 随着层级的下降扫描的频率降低
    python的变量与垃圾回收机制_下划线_06

python的变量与垃圾回收机制_内存地址_07