什么是变量?
量 指的是事物的状态
事 指的是事物的状态是可变的
变量就是一种存取内存的机制
为何要用变量?
为了控制计算机能够像人一样记住事物的状态,且事物的状态是可变的
如何用变量?
原则:先定义,后引用
定义:变量名 = 变量值
引用:变量名
一、变量的基本使用:先定义,后引用
age = 18 print(age) #结果 18
name = 'egon'
print(name) #结果 egon
这是在pychram中运行。在交互式环境中可以直接输入变量名,不用print()
在交互式环境中
age = 18 # 定义
age # 引用
18 # 结果
二、变量的三大组成部分
name = 'alex'
变量名:用来指向变量值的内存地址,用来访问值的
赋值符号 :用来把变量值的内存地址绑定给变量名
变量值:记录事物的状态,也就是我们存入内存的数据
变量名详解:
3.1左值与右值
wxid = '123456' 左值:变量名在等号左边,就称之为左值,这个时候变量名是一种存值行为
print(wxid) 右值:只要不在等号左边,都称之为右值,这个时候变量名是一种取值行为
x = x + 1
存值 取值
print(x)
3.2 变量名的命名
(1)大前提:见名知意
name = 'alex'
(2)规范:
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']
一般下划线不用作开头
# _name="egon"
# _="egon"
# print(_)
(3)命名风格
1、驼峰体
AgeOfEgon = 18
2、纯小写+下划线(推荐)
age_of_egon = 18
3.3变量值
(1)两大特征:id、type
name = 'egon' age = 18 print(id(name)) print(id(age))
print(type(name)) print(type(age))
(2)内存管理机制之垃圾回收机制GC
引用计数
x = 10 #10的引用计数为1
y = x #10的引用计数为2
x = 20 #10的引用计数为1
del y #10的引用计数为0
分代回收
优点:降低扫描数数量,提升效率
缺点:有个别数据无法得到及时的处理
循环引用导致的内存泄露问题?????》标记/清楚
(3)内存管理机制之小整数池
在用户交互模式小整数池的范围是-5—256。
意思就是-5到256之间其中有个整数赋值给多个变量(值的内存地址绑定给多个变量名),那么这几个变量名的内存地址是同一个地址。超过小数据池的范围则不是同一个内存地址。
但是仅仅只是针对整数。
x = 256 y = 256 print(id(x)) print(id(y)) #id都是一样的
例外情况
x = 300 y = 300 print(id(x)) print(id(y)) #结果是不一样的 x ,y = 300 print(id(x)) print(id(y)) #结果也是一样的