变量-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将回收内存空间

 

posted @ 2017-11-29 12:03  Wesley·zk  阅读(165)  评论(0)    收藏  举报