可变不可变类型
可变类型:值改变,id不变-------改变原值
不可变类型:值改变,id变-------生成新的值
不可变类型 X=9 print(id(x)) # 140708793148496 X=10 print(id(x)) # 140708793148528 可变类型 l = [‘a’,’b’,’c’] print(id(l)) # 2177056384136 l[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)) #123456 <class 'int'> x=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 <class 'float'>----------------------------------------------------------------------------------------------------------
数字类型总结:
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]) h <class 'list'>
o
l msg[0]='H' # 只能取 TypeError: 'str' object does not support item assignment 3.2、切片(顾头不顾尾,步长) msg='hello world' res=msg[0:3:1] # 0 1 2 print(res) print(msg)
hello world
hel res=msg[:] res=msg[::2] # 0 2 4 6 8 10 print(res)
hlowrd msg='hello world' res=msg[-1:-12:-1] res=msg[-1::-1] res=msg[::-1] print(res) dlrow olleh
3.3、长度len msg='hello world' print(len(msg))
11 3.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
True 3.5、移除空白strip: 用来去除字符串左右两边的字符,不指定默认去除的是空格 #strip 清除 msg=' sies ' res=msg.strip() print(res,id(res)) print(msg,id(msg))
sies 1352119010056
sies 1352119034864 print('******eg**on*****'.strip('*')) eg**on print('***+-\/***egon#@$*****'.strip('*+-\/#@$'))
egon name=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,rstrip
print('******egon***********'.strip('*'))
print('******egon***********'.lstrip('*'))
print('******egon***********'.rstrip('*'))
2、lower,upper
print('Abc123'.lower())
print('Abc123'.upper())
3、startswith,endswith
msg='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,rsplit
msg='a:b:c:d'
print(msg.split(':',1))
print(msg.rsplit(':',1))
6、replace
msg='kevin is kevin is hahahah'
res=msg.replace('kevin','sb',1)
print(res)
7、isdigit
print('123123'.isdigit()) # 如果字符串是由纯数字组成的,则返回True
print('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,count print('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,zfill print('egon'.center(50,'*')) print('egon'.ljust(50,'*')) print('egon'.rjust(50,'*')) print('egon'.rjust(50,'0')) print('egon'.zfill(50)) 3、captalize,swapcase,title print('abcdef dddddd'.capitalize()) print('abcAef dddddd'.swapcase()) print('abcAef dddddd'.title()) 4、is数字系列 num1=b'4' #bytes num2='4' #unicode,python3中无需加u就是unicode num3='四' #中文数字 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']=2222 print(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 in l=['a','b','c','d','e'] print('a' in l) 3.5、追加与insert l=['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) =======================该类型总结========================= 存多个值 有序 可变