一.可变类型和不可变类型:
1.可变类型.
值变了,但是id没变.证明没有生成新的值而是在改变原值的就是可变类型.
y=['a','b','c']
print(id(y))
y[0]='A'a
print(y)
print(id(y))
2.不可变类型.
值变了,id也跟着变了,证明是生成了新的原值,而不是在改变原值的就是不可变类型.
x=10
print(id(x))
x=11
print(id(x))
二.数字类型:
1.整形,
用途:年龄,身份证号.等级.. 定义方式: age = 18 age=int(18) 只能将纯数字字符串转换成整型.
常用的操作方法: 用于赋值,比较,算数.
该类型的总结:
整型之存在一个值,是不可变的.(1.可变:值变,id不变.不可hash.2.不可变:值变,id就变.可hash)
print(hash(10))
print(hash(['1','2','3']))
三.字符串类型:
用途:记录描述性的内容,比如名字.地址,性别. 定义方式:在单引号,双引号.三引号内包含的字符.
msg='abcd' msg=str('abcd').
可以将任意类型转换成字符串.:
str(1) str(1,3) x = str(【1,2,3】) print(x,type(x))
常用的操作方法:
1.按索引取值.(正向取,反向取.):只能取.
msg='hello world'
print(msg[0])
print(msg[5])
print(msg[len(msg)-1])
print(msg[-1])
2.切片(顾头不顾尾.后面可以加步长.):用途:想要从一个大字符串里切出来一个小字符串.
msg='hello world'
prit(msg[0:5])
print(msg)
print(msg[0:5:2])
print(msg[-1::-1] (这个方法可以把字符串全部倒过来.)
3.长度len
msg=‘hello world’
print(len(msg))
4.成员运算 ( in 和 not in)
msg=‘袁冲是个烦人虫’
print(‘袁冲’ in msg) True
print(‘烦人虫’ in msg)Ture
print(‘sb’ not in msg)True
print(‘是个’not in msg)False
5.移除字符串左右两变的字符strip:默认去空格 lstrip 从左开始去除. rstrip 从右开始去除
pwd = ‘ 1 23 ’
res=pwd.strip(' ')
print(res)
常用与去除密码的空格等.
pwd=input('>>: ').strip() #pwd='123'
if pwd == '123':
print('密码正确')
在stirp后的括号里输入什么就去除什么.
6.切分.split:针对有规律的字符串按照某个字符切成列表:
info='lypdsb$23$man'
li=info.split('$',1)
print(li)
7.for 循环
msg='hello'
for item in msg:
print(item)
该类型总结:
只存在一个值, 是有序的, 不可变,
s1= 'hello'
print(id(s1))
s1=‘world’
print(id(s1))
需要掌握的操作 之 五颗星!!!!!!!!!
1.strip,lstrip,rstripprint('****egon***'.strip('*')) 从左右两边print('****egon***'.lstrip('*')) 从左边去print('****egon***'.rstrip('*')) 从右边去
2.lower, upper
print('AAAAAAABBBBBB'.lower())把字符换成小写字母
print('aaaaaaabbbbbb'.upper())把字符换成大写字母
3.startswith, endswith
print('alex is sb'.startswith('alex'))判断是不是以某个字符开始.
print('alex is sb'.endswith('sb')) 判断是不是以某个字符结束.
4.format的三种玩法:
print('my name is {name} my age is {age}'.format(age=18,name='lyp')) 可以直接标注,代替占位符.
print('my name is {} my age is {}'.format(18,'egon')) farmat后面的字符是按照顺序运用的.
print('my name is {1} my age is {0}'.foemat(18,'egon')) 可以用数字来标注让它有序的运用.
5.split,rsplit
msg='a:b:c:d:e:'
print(msg.split(':',1)) 可以把字符串切分成列表,从头开始切.1是切分的次数,
print(msg.rsplit(':',1))可以把字符串切分成列表,从尾开始切.1是切分的次数,
6.join
msg='a:b:c:d:e:'
list1=msg.split(':')
msg1=':'.join(list1)
print(msg1)
info='egon:123:male'
list1=info.split(':')
print(list1)
print(':'.join(list1))
可以把split转换过的字符串再转换回来.
7.replace:
msg='alex is alex alex is hahahaha'
print(msg.replace('alex','SB',1))
可以把字符串里的字符代替.后面的数字是代替的次数.
8.isdigit
print('123',isdigit())
print('12.3',isdigit())
只能判断纯数字的字符串.
四.列表类型:
用途:记录多个值,比如个人爱好 定义方式:在[]内用逗号分隔开多个任意类型的值
li=[1,2,3] # li=list([1,2,3])
列表是可变类型.
x=list('hello')
x=list({'a':1,'b':2,'c':3})
print(x)
可以把字符串跟字典转换成列表.
1.常用的操作+内置方法:
优先掌握的操作:
1.按索引存取值(正向存取+反向存取):即可存也可以取
li=['a','b','c','d']
print(li[-1])
li[-1]='D'
print(li)
li[4]='e'
del li[0]
print(li)
想存到哪可以索引到那,想取哪个也是索引到哪个.
2.切片(顾头不顾尾,步长)
li=['a','b','c','d']
print(li[0:3])
3.长度: len
print(len(li))
4.成员运算in和not in
users=['egon','lxx','lyp''alex',[1,2,3]]
print('lxx' in users) True
print([1,2,3] in users) True
print(1 in users) False
5.追加
li=['a','b','c','d']
print(id(li))
li.append('e')
li.append([1,2,3])
print(li,id(li))
可以随意加上字符串.值变但id不变,表示列表是可变类型.
6.删除
li=['a','b','c','d']
按照元素值去单纯的删除某个元素
del li[1]
res=li.remove('c')
print(li)
print(res)
按照元素的索引去删除某个元素并且拿到该元素作为返回值
res=li,pop(1)
print(li)
print(res)
7.循环
li=['a','b','c','d']
for itme in li:
print(itme)
该类型总结:
存在多个值. 是有序的, 是可变的 print(hash([1,2,3]))
需要掌握的操作!!!! 五颗星!
li=['a','b','c','d','c','e']
print(li.count('c'))
li.extend([1,2,3])
li.append([1,2,3])
print(li)
count可以运算出列表里所索引的字符串有几个.
extend可以把加到列表里的列表分开加入进去,
append可以把列表直接加入进去.
li=['a','b','c','d','e','z']
print(li.index('z'))
print(li.index('b'))
print(li.index('d',0,4))
index是把想要索引的元素位置找出来,后面的数字表示几到几之间的范围.
li=['alex','egon','lxx','wupeiqi']
li.insert(1,'egon')
print(li)
insert是把想要插进去的字符串插入进去,数字代表想要插入的位置.
li=[3,1,9,11]
li.reverse()
print(li)
reverse可以把列表倒过来表示.
li.sort(reverse=True)
print(li)
sort可以把列表内的数字从小到大永久排序,如果后面加上(revese=True)就会从大到小排序.
练习:
队列,先进先出.
q=[]
q.append('first')
q.append('second')
q.append('third')
print(q)
print(q.pop(0))
print(q.pop(0))
print(q.pop(0))
pop可以把列表里的元素弹出来再取到.每取出来一个就从新索引再取出.