python数据类型有4类:number(数字)、序列、set(集合)、dict(字典)。
一、number
number又可以分为4个小点:int(整型)、float(浮点型)、bool(布尔型)、complex(复数)。
1、int就是整数
2、float就是小数
有数就有运算
加减乘和日常没有区别
除法:有两种
①1/2,得到的是0.5(float)
②1//2,得到的是0(int)
也就是说,一个/所得到的数全部是float,而//所得到的是除法数据的整数部分(我理解为除法取整)。
3、bool就是真假,只有两种取值:True、Flase(首字母必须大写)
①True:非0,只有不是0就都是True
②Flase:0、空值、None
True转换为十进制为1
Flase转换为十进制为0
4、complex用j表示
例:4j
二、序列
序列分为3点:str(字符串)、list(列表)、tuple(元组)
1、str
str三种表示:''(单引号)、""(双引号)、''' ''' 或""" """(三引号)
注意:引号必须为英文状态,引号表示字符串必须成对出现。
例:
①'rushaonian'
②"rushaonian"
③"""rushaonian"""
上面三个都是字符串
字符串为什么有这么多表示方法?
原因:避免有些情况,无法识别引号是否表示字符串
例:'let's go' 第二个引号不是表示字符串,但是python识别会r默认为字符串,所以运行会报错。
"let's go" 这样就不会报错。
'let/'s go' 这样也可以。/表示转义字符
转义字符:
①无法“看见”的字符。例:\n(换行)
②与语法本身字符有冲突的字符。例:''(单引号)
注意:\n(换行)与\r(回车)区别:
如上图:A: 初始位置
B:使用\r(回车)
C: 使用\n(换行)
D: 使用\r+\n
字符串的运算
①加法:
>>> 'ru'+'shao'+'nian'
'rushaonian'
②乘法:就是重复
>>> 'rushaonian'*3
'rushaonianrushaonianrushaonian'
③字符串无减法 和除法
④访问字符串中的字符
【1】访问单个字符
>>> 'rushaonian'[0]
'r'
>>> 'rushaonian'[1]
'u'
>>> 'rushaonian'[-1]
'n'
>>> 'rushaonian'[-2]
'a'
如上面代码:字符串的每个字符都暗含一个索引,我们通过这些索引来读取它们。
注意:索引从0开始,如第一行代码,r字符的索引是0.
[-n]是从字符串末尾访问,这里的n表示步长,就是从最后一位向前数n位。此处n从1开始。
【2】访问一组字符即切片操作
>>> 'rushaonian'[0:2]
'ru'
>>> 'rushaonian'[0:-1]
'rushaonia'
>>> 'rushaonian'[0:]
'rushaonian'
>>> 'rushaonian'[:-1]
'rushaonia'
如上面代码:[n:m]就是从第n位到第m位,但是不包含m位。
上面代码有四种切片操作,第3种切片为读取第0位一直到整个字符串末尾。第4种切片为从a一直读取到串开始第0位。
【3】按需切片
>>> 'rushaonian'[0:8:2]
'rsan'
上述切片含义:从第0位到第8位(不包含第8位),每隔2个字符就读取一个字符,读取的是两个字符中的第一个。
【4】判断某个字符是否在字符串中
>>> 'ru' in 'rushaonian'
True
【5】判断n某字符串不在字符串中
>>> 'ru' not in 'rushaonian'
False
【6】判断字符串总共有多少元素
>>> len('rushaonian')
10
2、list(列表)
①[1,2,3] 这就是列表,列表里面元素类型可以为任何数据类型。
>>> [1, '2' , True, [1, 2]]
[1, '2', True, [1, 2]]
如上面list:含有元素为list。这种list称为嵌套列表。
②列表的元素访问与字符串一样
注意:
【1】一元素所得到字符类型为元素本身数据类型。
>>> [1, '2', True, [1, 2]][0]
1
>>> [1, '2', True, [1, 2]][1]
'2'
>>> [1, '2', True, [1, 2]][2]
True
>>> [1, '2', True, [1, 2]][3]
[1, 2]
【2】切片得到字符是list
>>> [1, '2', True, [1, 2]][0:2]
[1, '2']
3、tuple(元组)
①1,2,3) 这就是元组,元素类型可以为任何数据类型。
>>> (1,'2',False,[3,4],(5,6))
(1, '2', False, [3, 4], (5, 6))
②t uple与list操作一样
③空的tuple:()
注意:
tuple中表示只有一个元素:>>> (9,)
(9,)
不能使用(9)
原因:()可以表示运算优先级也可以表示tuple,为了区别,,所以tuple中表示只有一个元素用(9,)。
三、set(集合)
{1,2,3}
【1】 无索引,不可切片操作,无序
【2】 无重复元素
>>> {1,2,1,4,2}
{1, 2, 4}
【3】 set特点:
① -:求两个集合差集
>>> {1, 2, 4}-{1}
{2, 4}
② &:求两个集合交集
>>> {1, 2, 4}&{1}
{1}
③ |:求两个集合并集
>>> {1, 2, 4}|{5,6}
{1, 2, 4, 5, 6}
④ 空的set:set()
四、dict(字典)
{key1:value1,key2:value2}
【1】Key:必须为不可变的数据类型:int,str。。。。。。
Value:可以为任何数据类型
【2】通过key找value
>>> {'Q':'点燃','W':'闪现'}['Q']
'点燃'
【3】dict不可有重复的key
>>> {1:'1',1:'2'}
{1: '2'}
原因:一开始1指向的value为’1’,然后又把’2’指向到1,覆盖了原来的value。所以只剩下
{1: '2'}
【4】空dict:{}