变量-Day1
一、变量
变量用于存储在计算机程序中引用和操作的信息,它还提供了一种用描述性名称标记数据的方法,因此我们的程序可以更清晰的被读和理解。变量的目的是唯一在内存中标记和存储数据,然后在程序中调用。
1、声明变量
name="wesley"
上述代码声明了一个变量,变量名为:Wesley,变量name的值为:“wesley”。在使用变量时,必须对其赋值,没有值的变量是没有意义的,编译器也不会编译通过。
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、变量的定义方式
驼峰体:
AgeOfWelesy=25
下划线(推荐使用):
age_of_age=25
4、ID、Type、Value
ID:唯一定义一块内存空间
Type:数据类型
Value:内存空间所存储的数值
>>> x='Info Value:7' >>> y='Info Value:7' >>> id(x) 1509650103152 >>> id(y) 1509650079984 >>> x == y True >>> x is y False
注意:
- 等号比较的是value,value相同type肯定相同,但id可能不同
- is比较的是id,id相同 意味着type和value必定相同
- 存在值不相同,但ID
5、 变量内存空间存储机制
name = "szk" name2 = name name = "wesley" print(name,name2) #返回值: wesley szk
为什么name2的返回值不是wesley?

实现过程:
程序是运行在内存中的,当执行name='szk'时,这里在内存中开辟了一块空间,并将这块空间的内存地址赋值给name;再执行name2=name的时候,将name中的内存赋值给name2,也就说name2的内存地址也是存储“szk”的内存空间的地址;在执行name="wesley",此时在内存中另外再开辟一块空间存储“wesley”,将存储“wesley”的内存空间的地址赋值给name。所以在最后执行print(name.name2)的时候,就会出现你看到的结果。
注:同一个变量可以反复赋值,而且可以是不同类型的变量。这种变量本身类型不固定的语言称为动态语言,与之对应的是静态语言。静态语言在定义变量时,必须制定变量类型,否则会报错。python的变量类型可以通过type()函数查看。
6、变量垃圾回收机制
定义一个变量需要申请一段内存空间,如果内存空间不回收会导致内存溢出。那么就需要垃圾回收机制,Python默认提供垃圾回收机制,无需认为参与。
age=18 #18引用基数为1 age=19 #18用用基数为0 age=18 #18引用基数为1 del 19 #18用用基数为0

age=18 #18引用基数为1 age1=age #18用用基数为2

#注意:当引用基数为0,Python将回收内存空间

浙公网安备 33010602011771号