1.数据类型
字符串: ''或""表示单行,写三对符合表示多行, r'这种写法转义符不生效'
布尔值:True, False
空值: None
类型转换
print bool('True'), bool(1), bool(0), bool(''), bool(None)#True True False False False print int('1')+1, str(1)+'1'#2 11
内存模型
a = 'abc' #内存创建变量a, 字符串'abc' b = a #创建变量b, b指向a地址,也就是'abc' a = 'xyz' #创建字符串'xyz',a指向‘xyz’ print b #b指针没变,所以还是‘abc’ a = {} #创建变量a,创建对象{},a指向{} b = a #创建变量b, b指向a地址,也就是{} a['a1'] = 1 #修改a指向内容的数据 print b==a,b #b指针没变,所以内容跟a看到的一样 a = {} #重新创建对象{},a指向它,跟前一个不一样 a['a2'] = 2 #修改新对象属性 print b==a,a,b #b还为原先的值,{'a1':1},所以深拷贝可由此实现
参考:数据类型和变量
2.浅拷贝与深拷贝
# coding=utf-8 #浅拷贝 a = [1,2,3,4,5] b = a a.append('hello') print a == b, a, b #深拷贝 from copy import copy c = copy(a) a.append('world') print a == c, a, c #输出结果 True [1, 2, 3, 4, 5, 'hello'] [1, 2, 3, 4, 5, 'hello'] False [1, 2, 3, 4, 5, 'hello', 'world'] [1, 2, 3, 4, 5, 'hello']
=为浅拷贝,a跟b指向同一对象
copy.copy()为深拷贝,a跟b指向不同对象