什么是变量?
从字面理解上就是变化着的量
变:现实世界中的状态是发生改变的
量:记录现实世界中的状态,让计算机像人一样去识别时间万物
为什么要有变量?
从唯物主义角度讲,世间万物一定是变化着的,肯定有一个变量来形容,同样的计算机也有这个概念,计算机程序中的运行就是一系列的状态变化
如何用变量?
1、首先要定义好
2、变量的组成:
- 变量名
- 赋值符号
- 变量值
变量名要规范
- 变量名是反应变量值描述的状态,不可用中文
- 变量名必须是用字母下划线组合,且变量名的第一个字符不能是数字
- 关键字不可做变量名:
[‘and‘, ‘as‘, ‘assert‘, ‘break‘, ‘class‘, ‘continue‘, ‘def‘, ‘del‘, ‘elif‘, ‘else‘, ‘except‘, ‘exec‘, ‘finally‘, ‘for‘, ‘from‘, ‘global‘, ‘if‘, ‘import‘, ‘in‘, ‘is‘, ‘lambda‘, ‘not‘, ‘or‘, ‘pass‘, ‘print‘, ‘raise‘, ‘return‘, ‘try‘, ‘while‘, ‘with‘, ‘yield‘]
‘‘‘
3、变量名的风格:
驼峰体和下划线
更容易接受下划线多一点
Python垃圾回收机制
当一个变量值之前是被某个变量名引用的,当代码运行,变量名别替代或者delete,变量值相应就会空置,变量值就会占取电脑内存,这时候python就会清理掉这一小部分占取的内存,回收变量值。
引用计数
其实这是为回收机制做准备的,给变量值上了引用,确切的知道变量值引用与否,若没有被引用到 自动默认为垃圾
就会被python自动清除
==x = 257 # 257 引用计数加1为1
y = x # 257 引用计数加1为2
x = 258 # 257 引用计数减1为1;258引用计数加1为1
del y # 257 引用计数减1为0,触发python垃圾回收机制,python清理257的内存占用==
小整数池
1、在交互式模式下
Python实现int的时候有个小整数池。为了避免因创建相同的值而重复申请内存空间所带来的效率问题, Python解释器会在启动时创建出小整数池,范围是[-5,256],该范围内的小整数 对象是全局解释器范围内被重复使用,永远不会被回收。
2、在pycharm中
在pycharm中运行python程序,pycharm出于对性能的考虑,会扩大小整数池的范围,其他的字符串等不可变类型也都包含在内一便采用相同的方式处理了,我们只需要记住这是一种优化 机制,至于范围到底多大,无需细究。
==x = 10 # 10引用计数加1为1
y = x # 10引用计数加1为2
z = 10 # 10引用计数加1为3
x = 11 # 10引用计数减1为2;11引用计数加1为1
del y # 10引用计数减1为1,
del z # 10引用计数减1为0,但不触发python垃圾回收机制,因为10数据Python小整数池内的数,会在Python解释器关闭前一直存在==
定义变量的三个特征:
python内置功能id(),内存地址不一样,则id()后打印的结果不一样。因为每一个变量值都有其内存地址,而id是用来反映变量值在内存中的位置,内存地址不同则id不同
==x = 10
print(x) # 获取变量的变量值
print(id(x)) # 获取变量的id,可以理解成变量在内存中的地址
print(type(x)) # 获取变量的数据类型,下章会详细介绍数据类型==
id相等的变量,值一定相等,指向的是同一个内存地址;值相等的变量,id不一定相等。
为啥要对数值进行分类?
变量的是用来反映状态以及状态变化的,毫无疑问针对不同的状态就应该用不同类型的数据去标识。
不同数据类型:
- 数字类型:
整型int
作用:用来记录年龄\身份证号\手机号码\等级
定义:age=10 #age=int10
浮点型float
作用:用来记录薪金\身高\体重
定义:salary=3.1 #salary=float(3.1) - 字符串类型:
作用:用来记录描述性质状态
定义:在引号(单引号、双引号、三引号)内包含一串字符
1、三双引号可以换行
2、如果字符串内有引号,则包裹字符串的引号和字符串内部的引号不能相同
3、注意的是:字符串的乘法只能乘以数字
字符串比较大小,按照ASCII码比较,通常是按照字母先后顺序比较大小
- 列表类型:
1.作用:存放多个值,如个人的爱好。
2.定义:在[]内用逗号分隔开任意类型的值==牢记索引序号从0开始==
- 字典类型:
1.定义:在{}内用逗号分隔开多个元素,每一个元素都是key: value的格式,其中value是任意格式的数据类型,key由于具有描述性的作用,所以key通常是字符串类型。
2.作用:用来存取多个值,按照key:value的方式存值,取的时候可以通过key而非索引去取值,key对value具有描述性的作用。存放数据的种类各种各样并且数据较多的时候可以使用字典。
字典套列表:
user_info = {‘name‘: ‘nick‘, ‘gender‘: ‘male‘, ‘age‘: 19,
‘company_info‘: [‘oldboy‘, ‘shanghai‘, 50]}
print(user_info[‘name‘])
print(user_info[‘company_info‘][0])==nick
oldboy==字典套字典:
字典套字典 user_info = {'name': 'nick', 'gender': 'male', 'age': 19, 'company_info': { 'c_name': 'oldboy', 'c_addr': 'shanghai', 'c_num_of_employee': 50}} print(user_info['name']) print(user_info['company_info']['c_name']) nick oldboy
- 布尔类型:
1.作用:用于判断条件结果
2.如何定义:True、False,通常情况不会直接引用,需要使用逻辑运算得到结果。需要注意的是:Python中所有数据类型的值自带布尔值。如此多的数据类型中只需要记住只有0、None、空、False的布尔值为False,其余的为True
原文地址:https://www.cnblogs.com/zhuyuanying123--/p/10896219.html