基础数据类型:number(数字)、string(字符)、tuple(元组)、list(列表)、set(集合)、dictionary(字典)
不可变数据:number、string、tuple
可变数据:list、set、dictionary
number:
1)number分为int、float、bool、complex
2)bool分为True和False,True和False首个字母区分大小写。bool是number类型可以进行直接运算。
3)运算 +、-、*、/、 //(除法只留整数部分,得到的并不一定是整数类型的数,它与分母分子的数据类型有关系,小数部位为0),**(乘方)、%(取余)
string:
1)string可以直接读取,变量名[头标:尾标]
头标:从前向后,0、1、2。。。。
尾标:从后向前,-1、-2、-3。。。
2)string 可以相加和相乘。
3)Python 字符串不能被改变。向一个索引位置赋值,比如word[0] = 'm'会导致错误
4)反斜杠可以用来转义,使用r可以让反斜杠不发生转义。\n 表示换行,r(‘abc\ndef’)。
list:
1)string可以直接读取,变量名[头标:尾标] 同string
2)Python 列表截取可以接收第三个参数,参数作用是截取的步长,以下实例在索引 2 到索引 11 的位置并设置为步长为 4(间隔一个位置)来截取字
x = ['a','d','c','e','f','g','h','k','q','w','e','r','t','y']
x[2:11:4] = ['c', 'h', 'e']
3)list切片:
python的列表切片,1、方向由step确定,step为正时,从左往右切片,step为负时,从右往左切片。
2、start和stop的正值代表列表下标,负值代表列表从左往右数起,倒数第几个数据。
3、start和stop的空值分别代表列表的头尾的最后一个数据,至于start和stop空值的时候代表的是列表的头还是尾,由step的正负值决定,即由step确定列表切片的方向后决定。当step为正时,即代表从左往右切片,则start的空值代表左边的
开头,stop的空值代表右边的结尾。当step为负值时,即代表从右往左切片,则start的空值代表右边的开头,stop的空值代表左边的结尾。
当step为负时,start的空值代表
4)list可以嵌套,即list的元素可以是个list。
5)list的迭代。for x in [1,2,3]:print(x)
tuple:
1)元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
set:集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。
1)可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
2)set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')
print(a)
print(a - b) # a 和 b 的差集
print(a | b) # a 和 b 的并集
print(a & b) # a 和 b 的交集
print(a ^ b) # a 和 b 中不同时存在的元素
dictionary:
1)字典(dictionary)是Python中另一个非常有用的内置数据类型。
2)列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
3)字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
4)键(key)必须使用不可变类型。number、string、tuple
5)在同一个字典中,键(key)必须是唯一的。如果有重复,记录的后面的key,前面的key被覆盖。
Python数据引用:
1)Python中不存在传值调用,一切传递的都是对象引用,也可以认为是传址调用。即Python不允许程序员选择采用传值或传引用。Python参数传递采用的是“传对象引用”的方式。实际上,这种方式相当于传值和传引用的一种综合。如果函数参数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值——相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象——相当于通过"传值"来传递对象。
2)当复制列表或字典时,就复制了对象列表的引用,如果改变引用的值,则修改了原始的参数。
3)为了简化内存管理,Python通过引用计数机制实现自动垃圾回收功能,Python中的每个对象都有一个引用计数,用来计数该对象在不同场所分别被引用了多少次。每当引用一次Python对象,相应的引用计数就增1,每当消毁一次Python对象,则相应的引用就减1,只有当引用计数为零时,才真正从内存中删除Python对象。
del:
del删除的是引用地址,而不是value。如果有多个引用引用同一个值,删除其中一个引用,不影响其他引用。
del 是删除引用而不是删除对象,对象由自动垃圾回收机制(GC)删除
例子:>>> x = 1
>>> del x
>>> x
Traceback (most recent call last):
File "<pyshell#28>", line 1, in <module>
x
NameError: name 'x' is not defined
>>> x = ['Hello','world']
>>> y = x
>>> y
['Hello', 'world']
>>> x
['Hello', 'world']
>>> del x
>>> x
Traceback (most recent call last):
File "<pyshell#32>", line 1, in <module>
x
NameError: name 'x' is not defined
>>> y
['Hello', 'world']