1、可变类型:值改变,但是id不变,证明就是在改变原值,是可变类型。
2、不可变类型:值改变,但是id也跟着变,证明是产生了新的值(也意味着创建了新的内存空间),是不可变类型
# 总结:
可变类型:列表,字典
不可变类型:整型,浮点型,字符串,元组
二、数字类型
1、用途
整型:记录年龄、等级等
浮点型:记录薪资、身高、体重等
2、定义方式
整型:a = 3 #a = int(3)
数据类型转换:只能将纯数字的字符串转成int
浮点型:salary = 10.3 #salary = float(10.3)
数据类型转换:只能将包含小数的字符串转成float
3、总结
存一个值
不可变类型
三、字符串类型
1、作用
记录描述性质的状态
2、定义方式
在单引号、双引号、三引号内包含一串字符串
msg = 'hello' #msg = str('hello)
数据类型转换:所有类型都可以被str转成字符串类型
3、常用操作+内置方法
# 优先掌握的操作:
1、按索引取值(正向取+反向取):只能取且取出来的字符仍然是字符串类型
msg = 'hello'
print(msg[0],type(msg[0])) #h <class 'str'>
print(msg[-1]) #o
msg[0] = 'H' #error 只能取
2、切片(顾头不顾尾,步长)
msg = 'hello world'
res = msg[0:3:1] #0 1 2
print(res) #h e l
print(msg) #原值并不改变
res = msg[:] #0 1 2 3 4 5 6 7 8 9 10
res = msg[::2] #0 2 4 6 8 10
res = msg[-1:-12:-1] #10 9 8 ... 0
res = msg[-1::-1] #一直执行到最后
res = msg[::-1] #默认从后向前依次出发
3、长度 len
print(len(msg))
4、成员运算 in 和 not in:判断一个子字符串是否存在于大字符串中,返回的值是 True 和 False
msg = 'hello'
print('hel' in msg) #True
print('hell' not in msg) #False
print(not 'hel' in msg) #False
5、移除空白strip:用来去除字符串左右两边的字符,不指定默认去除的是空格
msg = ' he llo '
res = msg.strip() #he llo 无法去除中间的空格
print('*****eg**on****'.strip('*')) #eg**on
print('***%%%$eg*on&&**#'.strip('*%$&#')) #eg*on
print('*****egon******'.lstrip('*')) #egon******
print('*****egon******'.rstrip('*')) #*****egon
#下面一个程序主要是针对于用户在输入信息时会输入空格
name=input('username>>>: ').strip() # name='egon '
pwd=input('password>>>: ').strip()
if name == 'egon' and pwd == '123':
print('login successful')
else:
print('输错了。。。')
6、切分split:针对有规律的字符串,按照某种分隔符切成列表
info='egon:18:male'
res=info.split(':')
print(res,type(res)) #['egon','18','male'] <class 'list'>
print(res[0],res[1]) #egon 18
cmd='get|a.txt|33333'
print(cmd.split('|',1)) #['get','a.txt|33333']
cmd='get|a.txt|33333'
print(cmd.split('|',2)) #['get','a.txt','33333']
用: