数据类型(二)
一.可变与不可变类型
可变类型:值改变,但是id不变,证明就是在改变原值,是可变类型,比如列表和字典
不可变类型:值改变,但是id也跟着变,证明是产生了新的值,是不可变类型。比如数字,字符串,元组。
二.数字类型
1.整型 int(不可变)
①作用:通常用来记录年龄、等级、数量
②定义方式:
age = 10 # age = int(10)
③数据类型的转换,只能将纯数字的字符串转换成int
2.浮点型 float(不可变)
①作用:通常用来记录身高、薪资、体重
②定义方式:
salary = 10.1 # salary = float(10.1)
③数据类型的转换,只能将数字组成的字符串转换成float
三.字符串类型(不可变)
1.基本使用
①用途:记录描述性质的状态
②定义方式:在单引号、双引号、三引号内一串包含一串字符串
③数据类型的转换;所有类型都可以被转换成字符串类型
2.基本操作+内置操作的方法
①按索引取值(正向取+反向取):只能取
例:say = ‘hello’
print(say[0]) # h
print(say[-1]) # o
②切片(顾头不顾尾,步长)
例:say = ‘hello’
print(say[0:3:1] # hel 索引3之前,步长为1
print(say[::]) # hello 取所有值,默认步长为1
print(say[::2]) # hlo 取所有值,默认步长为2
print(say[::-1]) # olleh 取反
③长度 len
len(say) #hello的长度为5
④成员运算 in 和not in 判断一个子字符串是否存在于大字符串中
print('el' in say)#hello 中有el故输出为True
⑤移除空白strip:用来去除字符串左右两边的字符,不指定默认去除空格(还有rstrip,只去除右边,lstrip,只去除左边)
例:say=' he llo '
print(say.strip()) #输出为 he llo,从左边往右知道检测到h时停止,接着又从右往左判断,故中间的空格并不会被去除。
⑥切分split:针对所有有规律的字符串,按照某种分隔符切成列表
例:net='www.google.com'
net_list = net.split('.',2) #这里刚好切割两次
print(net_list) #输出为['www', 'google', 'com']
⑦迭代添加 join
例:print('.'.join(net_list))输出为www.google.com
⑧开始与结尾字符的判断
print(say.startswith('h’)) #hello以h开头,故为True
print(say.endswith('h’)) #hello以o结尾,故为False
⑨替换
say.replace('hello','hello world') #意思是把hello全部替换成hello world,也可以选择部分字符,进行替换以上改变而成的字符串都不是在原字符串上更改的,都是产生的新字符串,与原字符串无关。
四.列表类型(可变)
1.基本使用
①用途:按照位置记录多个值,索引对应值
②定义方式:在[]内用逗号分隔开多个任意类型的值
l=['a',11,22.3] # l=list(['a',11,22.3])
③数据类型的转换:但凡能够被for循环遍历的数据类型都可以传给list,被其转换成列表
2.常用操作+内置的方法
①按索引存取值(正向+反向存取):可存可取(不能用不存在的赋值进行赋值(不能像字典一样添加),直接报错)
例:l=['a','b','c','d','e']
print(l[0]) #a
print(l[-1]) #e
l[0]='A' #a换成A
②切片,成员运算 in not in,长度 len
参考字符串
③追加与insert
l.append('A') #列表最后添加A
l.insert('0','B')#在索引为0处添加B
④删除
通用删除操作del
del l[0] #删除索引为0处的值
remove删除要输入指定元素
l.remove('a') #删除a
pop指定删除索引位置的值,并返回(可以理解成取走这个值)
l.pop() #默认索引为-1,删除最后一个值并返回
⑤可以用for遍历取出值
⑥取反与排序
l.reserve() #列表取反,这里['e','d','c','b','a']
l.sort(),默认从小到大排序,在()可以添加reverse=True,从大到小排序,默认是False