day 3

一、内存管理机制

1、Cpython解释器的垃圾回收机制:

a、什么是垃圾:当一个值身上没有绑定任何变量名(即该值的引用计数为0)时,该值就是一个垃圾。

b、引用计数增加:

python 已知内存地址 对内存内容copy一份 python 内存地址相同_引用计数

python 已知内存地址 对内存内容copy一份 python 内存地址相同_字符串_02

#age = 18  #18的引用计数增加为1
      #x = age   #18的引用计数增加为2

View Code

 

c、引用计数减少:

python 已知内存地址 对内存内容copy一份 python 内存地址相同_引用计数

python 已知内存地址 对内存内容copy一份 python 内存地址相同_字符串_02

# age=19      #18的引用计数等于1
       # print(age)
       # del x           #18的引用计数等于0  
       #del只是解除变量名与值之间的绑定并不删除值

View Code

 

2、变量值的三个特征:

a、id:反应的是内存地址;

  b、type:反应数据类型.

c、值

python 已知内存地址 对内存内容copy一份 python 内存地址相同_引用计数

python 已知内存地址 对内存内容copy一份 python 内存地址相同_字符串_02

# age=18
     # print(id(age))        #获取到值18的ID地址
     # print(type(age))    #获取到值18的数据类型
     # print(age)             #获取到值

View Code

 

d、总结:

I. id地址相同,值一定相同;

II.值相同,id地址有可能不相同。

3、is 与 ==:

a、is:判断两个值的id地址是否相等;

b、==:判断值是否相等

4、可变型与不可变型:

a、可变型:值改变,id不变,证明就是在改变原值,则为可变型。 示例:字典、列表等

b、不可变型:值改变,id也变,证明根本就不是在改变原值,则为不可变型。 例:整型、字符串等。


二、与用户交互:

1、python2中:

a、input:用户输入什么类型,Python解释器就将其存为什么类型,不方便用户。

b、raw_input:不管用户输入什么类型,Python解释器都将其存为字符串类型,方便用户。

2、python3中:

input:不管用户输入什么类型,Python解释器都将其存为字符串类型,方便用户。


三、数据类型的基本使用:

1、整型(int):

作用:用于记录年龄、等级、身份证号等

定义: age = 10

2、浮点型(float):

作用:用于记录薪资、体重、身高等

定义:salary = 3.1

4、字符串型(string):

作用:用于记录名字、性别、地址等描述信息

定义:在单引号('')、双引号("“)、三引号(''' ''')内包含一系列字符,name = "egon"。

python 已知内存地址 对内存内容copy一份 python 内存地址相同_引用计数

python 已知内存地址 对内存内容copy一份 python 内存地址相同_字符串_02

#优先掌握的操作:
     #1、按索引取值(正向取+反向取) :只能取
     #2、切片(顾头不顾尾,步长)
     #3、长度len
     #4、成员运算in和not in
     #5、移除空白strip
     #6、切分split
     #7、循环

View Code

 

运算:字符串只能运行*(倍数个字符串的拼接)和+(直接拼接)

5、列表类型(list):

作用:用来记录多个值,用索引对应值,索引反应的是位置。

定义:在[]内用,分隔开多个任意类型的元素。list_1 = ["a",12,["1",]]

6、字典类型(dict):

作用:用来记录多个值,用key对应值value,key对value有描述作用。

  定义:在{}中用,分隔开多个元素,每个元素都是以key:value的形式,其中value可以是任意类型。

dict = {"name":"egon","age":18,“hobbies”:["read","write"]}

7、布尔类型(bool):

定义:布尔运算有且仅有的两个值:True 和 Flase

任意数据类型自带布尔值:除0,None,空三类的布尔值为Flase以外,其余数据类型值的布尔值均为True。


四、基本运算符:

1、算数运算符:

python 已知内存地址 对内存内容copy一份 python 内存地址相同_引用计数_09

2、比较运算:

python 已知内存地址 对内存内容copy一份 python 内存地址相同_引用计数_10

3、赋值运算符:

python 已知内存地址 对内存内容copy一份 python 内存地址相同_数据类型_11

4、逻辑运算符:

python 已知内存地址 对内存内容copy一份 python 内存地址相同_引用计数_12

5、位运算符:

python 已知内存地址 对内存内容copy一份 python 内存地址相同_字符串_13

6、身份运算符:

python 已知内存地址 对内存内容copy一份 python 内存地址相同_引用计数_14

7、成员运算符:

python 已知内存地址 对内存内容copy一份 python 内存地址相同_字符串_15

8、运算符优先级:

 

python 已知内存地址 对内存内容copy一份 python 内存地址相同_引用计数_16