day03_02 变量

什么是变量?

量 指的是事物的状态

事 指的是事物的状态是可变的

变量就是一种存取内存的机制

为何要用变量?

为了控制计算机能够像人一样记住事物的状态,且事物的状态是可变的

如何用变量?

原则:先定义,后引用

定义:变量名 = 变量值

引用:变量名

一、变量的基本使用:先定义,后引用

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))    #结果也是一样的
原文地址:https://www.cnblogs.com/HuaR-/p/14538447.html