一:内存管理
1:CPython解释器的垃圾回收机制
1.1什么是垃圾?
当一个值身上没有绑定任何变量名(该值的引用计数=0)时,该值就是一个垃圾
1.2引用计数增加
age=18 #18的引用计数等于1
X=age #18的引用计数等于2
print(age)
print(X)
1.3引用计数减少
age=19 #18的引用计数等于1
print(age)
del X #18的引用计数等于0
2:变量名的三个特征
id:反应的是内存地址
type:数据类型
值:
age=18 print(id(age)) print(type(age)) print(age)
小结:
id相同,值一定相同
值相同,id可以不同
以下为交互式环境运行结果
''' >>> x='name:egon age:18***' >>> y='name:egon age:18***' >>> id(x) 2847698422856 >>> id(y) 2847698422928 '''
以下在pycharn中运行:
x=11111111111111111111111111231231231231222222222222 y=11111111111111111111111111231231231231222222222222 print(id(x)) print(id(y))
3:is与==
==:比较的是值是否相等
] is:id是否相同
4:可变与不可变类型
可变类型:值改变,id不变,证明就是在改变原值
不可变类型:值改变,id也变,证明根本不是在改变原值,是创造了新值,原值就是不可变类型
例如:
x=10 print(id(x)) x=11 print(id(x))
二:Python2 中与用户的交互
1:在Python3 中只有一个input
特点:
用户输入的任意内容都存成str类型
2:在Python2中只有一个raw_input,与Python3 的input一模一样
要求用户必须输入一个明确的类型,输入什么类型就存成什么类型
三:数字类型
1:整形int
作用:用来记录年龄,等级,各种号码状态
定义:
age=10
print(typeage))
使用:(可以使用加减乘除)
print(age+1)
print(age>3)
2:浮点型float
作用:用来记录身高,体重,工资状态
定义:
salary=3.1(即salary=float(3.1))
print(type(salary))
使用:
print(3.1+3.2)
print(3.1>3.2)
print(3.1+2)
print(3.1>2)
四:字符串类型str
作用:用来记录描述性质状态,比如名字,性别
定义:在单引号(''),双引号(""),三引号("" "'',""" """),包含一系列的字符
x='abc'
print(type(x))
y="abc"
z="""
abc
xxxxxxxx
"""
print(type(x)
print(type(y))
print(type(z))
使用:
print('abc+'def'') 仅限于str类型直接相加
print('abc'*10) *的只能是数字
了解ASCLL码:
x='abc'
y='z'
print(x>y)
五:基本运算符
5.1:比较运算符
>,>=,<,<=,==,!=
5.2:逻辑运算符
and:连接左右两个条件,只有两个条件同时成立时and运算符 结果为True
or:连接左右两个条件,两个条件成立任何一个or运算符的结果就为True
not:对紧跟其后的条件取反
例子:
print(not 10 > 3 )
x=none
print(not x is none)
print(x is not none)
age1=18
age2=19
print(age2 is not age 1)
六:列表与字典
列表list:
在[]内用逗号分隔,可以存放n个任意类型的值
字典dict:
在{}内用逗号分隔开多元素,可以存放多个key:value的值,value可以是任意类型,二key通常应该是str类型
七:布尔类型(True和False)
所有数据类型自带布尔值
布尔值为假的数据类型:0,none,空