可变不可变类型
可变类型:值改变,id不变-------改变原值
不可变类型:值改变,id变-------生成新的值
不可变类型X=9print(id(x)) # 140708793148496X=10print(id(x)) # 140708793148528可变类型l = [‘a’,’b’,’c’]print(id(l)) # 2177056384136l[0]=’A’Print(l,id(l)) # ['A', 'b', 'c'] 2177056384136
数字类型
整型int
1、用途:记录年龄、等级、数量
2、定义方式
age = 10 # age=int(10)
数据类型转换: 只能将纯数字的字符串转成int
x=int('123456') print(x,type(x)) #123456x=int('12.3') # Value Error : invalid literal for int() with base 10: '12.3'
浮点型float
1、用途:记录身高、薪资、体重
2、定义方式
salary = 10.1 # salary=float(10.1)
数据类型转换: 只能将包含小数的字符串转成
x=float('3.1')print(x,type(x)) # 3.1----------------------------------------------------------------------------------------------------------
数字类型总结:
1、存一个值
2、不可变类型
字符串类型
1、用途:记录描述性质的状态 2、定义方式:在单引号、双引号、三引号内包含一串字符串 msg='hello' # msg=str('hello') 数据类型转换:所有类型都可以被str转成字符串类型 res=str([1,2,3]) print(res,type(res)) 3、常用操作+内置的方法
*****3.1、按索引取值(正向取+反向取) :只能取msg='hello'print(msg[0],type(msg[0]))print(msg[-1])print(msg[-2]) ho lmsg[0]='H' # 只能取 TypeError: 'str' object does not support item assignment3.2、切片(顾头不顾尾,步长)msg='hello world'res=msg[0:3:1] # 0 1 2print(res)print(msg) hello world helres=msg[:]res=msg[::2] # 0 2 4 6 8 10print(res) hlowrdmsg='hello world'res=msg[-1:-12:-1]res=msg[-1::-1]res=msg[::-1]print(res) dlrow olleh 3.3、长度lenmsg='hello world'print(len(msg)) 113.4、成员运算in和not in:判断一个子字符串是否存在于大字符串中msg='kevin is dsb'print('kevin' in msg)print('dsb' in msg)print('aaa' not in msg)print(not 'aaa' in msg) #取反 True True True True3.5、移除空白strip: 用来去除字符串左右两边的字符,不指定默认去除的是空格 #strip 清除msg=' sies 'res=msg.strip()print(res,id(res))print(msg,id(msg)) sies 1352119010056 sies 1352119034864print('******eg**on*****'.strip('*')) eg**onprint('***+-\/***egon#@$*****'.strip('*+-\/#@$')) egonname=input('username>>>: ').strip() # name='egon 'pwd=input('password>>>: ').strip()if name == 'egon' and pwd == '123': print('login successful')else: print('输错了。。。') 清除输入词前后的空格3.6、切分split:针对有规律的字符串,按照某种分隔符切成列表info='egon:18:male'res=info.split(':')print(res,type(res))print(res[0],res[1]) cmd='get|a.txt|33333'print(cmd.split('|',1))用:号作连接符号将纯字符串的列表拼接成一个字符串l=['egon', '18', 'male'] # 'egon:18:male'res=l[0]+':'+l[1]+':'+l[2]res=':'.join(l)print(res)3.7、循环for item in 'hello': print(item)
****1、strip,lstrip,rstripprint('******egon***********'.strip('*'))print('******egon***********'.lstrip('*'))print('******egon***********'.rstrip('*'))2、lower,upperprint('Abc123'.lower())print('Abc123'.upper())3、startswith,endswithmsg='alex is dsb'print(msg.startswith('alex'))print(msg.endswith('b'))4、format的三种玩法res='my name is %s my age is %s' %('egon',18)print(res)res='my name is {name} my age is {age}'.format(age=18,name='egon')print(res)
***res='my name is {} my age is {}'.format('egon',18)res='my name is {0}{1} my age is {1}{1}{1}{1}'.format('egon',18)print(res)5、split,rsplitmsg='a:b:c:d'print(msg.split(':',1))print(msg.rsplit(':',1))6、replacemsg='kevin is kevin is hahahah'res=msg.replace('kevin','sb',1)print(res)7、isdigitprint('123123'.isdigit()) # 如果字符串是由纯数字组成的,则返回Trueprint('123123 '.isdigit())print('123123asdf'.isdigit())print('12312.3'.isdigit())score=input('>>>>: ').strip() #score='asdfasdfasfd'if score.isdigit(): score=int(score) if score >= 90: print('优秀') else: print('小垃圾')else: print('必须输入纯数字')
了解的操作1、find,rfind,index,rindex,countprint('123 ke123ke'.find('ke'))print('123 ke123ke'.rfind('ke'))print('123 ke123ke'.index('ke'))print('123 ke123ke'.rindex('ke'))print('123 ke123ke'.find('xxxx'))print('123 ke123ke'.index('xxxx'))print('123 ke123ke'.count('ke',0,6))2、center,ljust,rjust,zfillprint('egon'.center(50,'*'))print('egon'.ljust(50,'*'))print('egon'.rjust(50,'*'))print('egon'.rjust(50,'0'))print('egon'.zfill(50))3、captalize,swapcase,titleprint('abcdef dddddd'.capitalize())print('abcAef dddddd'.swapcase())print('abcAef dddddd'.title())4、is数字系列num1=b'4' #bytesnum2='4' #unicode,python3中无需加u就是unicodenum3='四' #中文数字num4='Ⅳ' #罗马数字bytes与阿拉伯数字组成的字符串print(num1.isdigit())print(num2.isdigit())print(num3.isdigit())print(num4.isdigit())阿拉伯数字组成的字符串print(num2.isdecimal())print(num3.isdecimal())print(num4.isdecimal())阿拉伯数字\中文\罗马组成的字符串print(num2.isnumeric())print(num3.isnumeric())print(num4.isnumeric())5、is其他======================================该类型总结====================================存一个值有序不可变msg=' hello 'msg.strip()print(msg)
列表类型
1、用途:按照位置记录多个值,索引对应值
2、定义方式:在[]内用逗号分隔开多个任意类型的值
l=['a',11,11.3,] # l=list(['a',11,11.3,])
数据类型转换:但凡能够被for循环遍历的数据类型都可以传给list,被其转换成列表
res=list('hello')
res=list(123)
print(res)
res=list({'a':1,'b':2,'c':3}) # []
print(res)
3、常用操作+内置的方法
***** 3.1、按索引存取值(正向存取+反向存取):即可存也可以取l=['a','b','c','d','e']print(l[0])print(l[-1])print(id(l))l[0]='A'print(id(l))强调强调强调!!!:对于不存在的索引会报错l[5]='AAAA'dic={"k1":111}dic['k2']=2222print(dic)3.2、切片(顾头不顾尾,步长)l=['a','b','c','d','e']print(l[1:4])print(l[::-1])3.3、长度l=['a','b','c','d','e']print(len(l))3.4、成员运算in和not inl=['a','b','c','d','e']print('a' in l)3.5、追加与insertl=['a','b','c','d','e']l.append('xxx')l.append('yyy')print(l)l.insert(0,'xxxx')print(l)3.6、删除l=['a','bbb','c','d','e']del是一种通用的删除操作,没有返回值del l[0]print(l)dic={'k1':1}del dic['k1']print(dic)l.remove(指定要删除的那个元素),没有返回值res=l.remove('bbb')print(l)print(res)l.pop(指定要删除的那个元素的索引),返回刚刚删掉的那个元素l=['a','bbb','c','d','e']l.pop(-1)res=l.pop(1)print(l)print(res)3.7、循环l=['a','b','c','d','e']for item in l: print(item)练习:队列:先进先出l=[]# 入队l.append('first')l.append('second')l.append('third')print(l)# 出队print(l.pop(0))print(l.pop(0))print(l.pop(0))堆栈:后进先出需要掌握的操作l=['aaa','bb',345]l.clear()l.append([1,2,3])for i in [1,2,3]: l.append(i)l.extend([1,2,3])l.reverse()只有在类中中所有元素都是同种类型的情况下才能用sort排序l=[1,3,2]l.sort(reverse=True)l=['z','d','a']l.sort()print(l)=======================该类型总结=========================存多个值有序可变