python--变量&数据类型
变量
- 什么是变量?
即变化的量,用于记录事物的某种状态,(模仿人类)
- 如何使用变量
日常生活中:
姓名:duke
年龄:11
爱好:学习
程序中:
username = 'duke'
age = 11
hobbit = study
语法格式
username = 'duke'
底层原理(必须会!!!)
遇到赋值符号先看符号右边的,再看左边的
age = 18
1.在内存空间中申请一块内存空间存储18
2.将18所在的内存空间地址绑定给变量名age
3.之后如果要访问18就通过变量名age访问
变量的命名规范与风格
# 命名规范
1. 变量名只能由数字,字母,下划线任意组合
user@name(不可以), 123name(不可以),
_(可以,但是有特殊含义,指代这个变量指代的东西暂时用不到),
pwd_123_aaa(可以)
2. 变量名不能以数字开头,尽量也不要用下划线开头,
3. 变量名不能与关键字冲突
4. 变量的命名一定要左到见名知意(重要)
'''变量名见名知意是核心,无论变量多长'''
# 命名风格
1. 驼峰体
大驼峰 # 所有单词首字母大写
UserNameFromDb
小驼峰 # 第一首字母小写,其余首字母大写
userNameFromDb
'''JavaScript推荐使用驼峰体'''
2. 下划线
user_name_from_db
'''python推荐使用下划线'''
常量
主要用于记录一些不变的状态,
在python中没有真正意义上的常量,我们墨守成规的将全大写的变量看成是常量,HOST = '127.0.0.1' # 一般情况下在配置文件中使用的多。
在其他编程语言中是存在真正意义上的常量,定义了就无法修改如 JS:
const pi = 3.14 # 定义常量
pi = 4 # 不支持修改
变量三要素
- 变量的值
- 变量的内存地址 id
- 变量的类型 type
python底层优化
当数据量很小的时候,如果有多个变量名需要使用,那么会指向同一块地址
一个变量名只能指向一个内存地址,
一个内存地址可以有多个变量名指向
垃圾回收机制
python的垃圾回收机制以引用计数为主,分代回收为辅,
垃圾数据的定义
在内存中没有任何变量名指向的数据
针对垃圾数据python开发了一套自动化回收方案
- 引用计数
内存中变量值身上有几个变量名绑定引用计数就是几,只要不为0就不是垃圾,从而不被回收。 - 标记清除
当内存即将占满的时候,python会自动暂停程序的执行,从头到尾将内存中的数据进行扫描并打上标记,之后一次性清除掉标记的数据。 - 分代回收
分代回收是一种以空间换时间的操作方式,Python将内存根据对象的存活时间划分为不同的集合,每个集合称为一个代,
一般只有三代:- 年轻代(第0代) 链表总数达到上限,回收机制触发,可以被回收的被回收,不可以被回收的则去到中年代。
- 中年代(第1代) 以此类推,同上。
- 老年代(第2代)
他们会将数据的监管分为三个层次,随着层级的下降,监督的频率降低
数据类型
什么是数据类型?
在现实生活中存储数据的方式和表现形式有很多
文本文件 表格文件 视频文件 音频文件 图片文件。。。
在IT世界里数据的存储方式和表现形式也是千变万化的
数据类型之整型 int
# 白话表示 :整数
age = 18 # 这就是整型 int
print(type(age)) # <class 'int'>
数据类型之浮点型 float
# 白话表示 :小数
salary = 8200.5 # 这就是浮点型 float
print(type(salary)) # <class 'float'>
小结
整型与浮点型可以统称为数字类型,主要用于数学运算和比较运算。