Python开发之路Day5----基本数据类型和内置方法(要掌握)
一、课前小练习
#定义一个员工列表,格式化输出员工的姓名、年龄和性别。
1 info = [ 2 ['egon',18,'male'], 3 ['kevin',19,'male'], 4 ['wusir',20,'female'], 5 ] 6 7 for name,age,gender in info: 8 print('my name is %s,my age is %s,my sex is %' %(name,age,gender))
二、可变与不可变类型
可变类型:变量的值改变了,但是id不变,从而说明他只是在改变原值,这就是可变类型。
不可变类型:变量的值改变了,同时id也改变了,说明产生了一个新的值,这就是不可变类型。
1 x=9 2 print(id(x)) 3 x=10 4 print(id(x)) #类型可变 5 6 l=['a','b'] 7 print(id(l)) 8 l[0]='a' 9 print(l) 10 print(id(l)) #不可变类型
三、基本数据类型和内置方法
3.数字类型(详解)
3.1整型(int)
用途:用于记录年龄、身份证号、数量、等级等等。
定义:age = 18
数据类型的转换:只能讲出数字的字符串转换成int。
1 x = int('12345') 2 print(x,type(x)) 3 x = int('1234')
3.2浮点型(float)
用途:用于记录描述身高、薪资、体重等状态。
定义:salary = 3.1 # salary = float(3.1)
总结:数字类型只能存一个值,而且是不可变的。
4.字符串类型(重点掌握)
用途:用于记录描述事物的状态。
定义:通过使用单双引号来定义。 # name = 'egon' name = str('egon')
相关操作:1.数据类型的转换:所有的类型都可以转换成字符串类型。
# res = str('hello word')
# print(res,type(res))
内置方法的操作:
4.1 按照索引的位置(正反方向),只能取
1 # msg='hello' 2 # print(msg[0],type(msg[0])) 3 # print(msg[-1]) 4 # print(msg[-2])
4.2 切片(顾头不顾尾)
1 # msg='hello world' 2 # res=msg[0:3:1] # 0 1 2 3 # print(res) 4 # print(msg) 5 6 # res=msg[:] 7 # res=msg[::2] # 0 2 4 6 8 10 8 # print(res)
4.3 长度len
1 # msg='hello world' 2 # print(len(msg))
4.4 成员运算in和not in:判断一个子字符串是否存在于大字符串中
1 msg='kevin is dsb' 2 3 # print('kevin' in msg) 4 # print('dsb' in msg) 5 # print('aaa' not in msg) 6 # print(not 'aaa' in msg)
4.5 移除空白strip: 用来去除字符串左右两边的字符,不指定默认去除的是空格
1 # msg=' he llo ' 2 # res=msg.strip() 3 # print(res,id(res)) 4 # print(msg,id(msg)) 5 6 # print('******eg**on*****'.strip('*')) 7 8 9 # print('***+-\/***egon#@$*****'.strip('*+-\/#@$'))
4.6 切分split:针对有规律的字符串,按照某种分隔符切成列表
1 info='egon:18:male' 2 # res=info.split(':') 3 # print(res,type(res)) 4 # print(res[0],res[1]) 5 6 # cmd='get|a.txt|33333' 7 # print(cmd.split('|',1))
4.7 用:号作连接符号将纯字符串的列表拼接成一个字符串
1 l=['egon', '18', 'male'] # 'egon:18:male' 2 # res=l[0]+':'+l[1]+':'+l[2] 3 res=':'.join(l) 4 # print(res)
4.8 循环操作
1 # for item in 'hello': 2 # print(item)
4.9 需要掌握的操作(低一级)
1 #1、strip,lstrip,rstrip 2 # print('******egon***********'.strip('*')) 3 # print('******egon***********'.lstrip('*')) 4 # print('******egon***********'.rstrip('*')) 5 6 #2、lower,upper 7 # print('abc123'.lower()) 8 # print('abc123'.upper()) 9 10 #3、startswith,endswith 11 # msg='alex is dsb' 12 # print(msg.startswith('alex')) 13 # print(msg.endswith('b')) 14 15 #4、format的三种玩法 16 # res='my name is %s my age is %s' %('egon',18) 17 # print(res) 18 19 # res='my name is {name} my age is {age}'.format(age=18,name='egon') 20 # print(res) 21 22 # 了解 23 # res='my name is {} my age is {}'.format('egon',18) 24 # res='my name is {0}{1} my age is {1}{1}{1}{1}'.format('egon',18) 25 # print(res) 26 27 #5、split,rsplit 28 # msg='a:b:c:d' 29 # print(msg.split(':',1)) 30 # print(msg.rsplit(':',1)) 31 32 #6、replace 33 # msg='kevin is kevin is hahahah' 34 # res=msg.replace('kevin','sb',1) 35 # print(res) 36 37 #7、isdigit 38 # print('123123'.isdigit()) # 如果字符串是由纯数字组成的,则返回true 39 # print('123123 '.isdigit()) 40 # print('123123asdf'.isdigit()) 41 # print('12312.3'.isdigit())
5.0 需要了解的操作(不要求强烈会操作)
1 1、find,rfind,index,rindex,count 2 # print('123 ke123ke'.find('ke')) 3 # print('123 ke123ke'.rfind('ke')) 4 # print('123 ke123ke'.index('ke')) 5 # print('123 ke123ke'.rindex('ke')) 6 7 # print('123 ke123ke'.find('xxxx')) 8 # print('123 ke123ke'.index('xxxx')) 9 # print('123 ke123ke'.count('ke',0,6)) 10 11 #2、center,ljust,rjust,zfill 12 # print('egon'.center(50,'*')) 13 # print('egon'.ljust(50,'*')) 14 # print('egon'.rjust(50,'*')) 15 16 # print('egon'.rjust(50,'0')) 17 # print('egon'.zfill(50)) 18 19 #3、captalize,swapcase,title 20 # print('abcdef dddddd'.capitalize()) 21 # print('abcaef dddddd'.swapcase()) 22 # print('abcaef dddddd'.title()) 23 24 #4、is数字系列 25 num1=b'4' #bytes 26 num2='4' #unicode,python3中无需加u就是unicode 27 num3='四' #中文数字 28 num4='ⅳ' #罗马数字 29 30 # bytes与阿拉伯数字组成的字符串 31 # print(num1.isdigit()) 32 # print(num2.isdigit()) 33 # print(num3.isdigit()) 34 # print(num4.isdigit()) 35 36 # 阿拉伯数字组成的字符串 37 # print(num2.isdecimal()) 38 # print(num3.isdecimal()) 39 # print(num4.isdecimal()) 40 41 # 阿拉伯数字\中文\罗马组成的字符串 42 # print(num2.isnumeric()) 43 # print(num3.isnumeric()) 44 # print(num4.isnumeric())
总结:字符换类型只存在一个值,并且它是有序的,是不可变的。
5.列表类型(list)
用途:按照位置来记录值,通过索引来取值。
定义:在[]内用逗号把多个值分开。 # l = ['1','2','3']
数据类型的转换:但凡能够被for循环遍历的数据类型都可以传给list,被其转换成列表
1 # res=list('hello') 2 # res=list(123) 3 # print(res) 4 5 # res=list({'a':1,'b':2,'c':3}) # [] 6 # print(res)
由于列表的常用内置方法和字符串类似,所以这里以偏概全:(不做具体分析)但很重要:
1 #3.1、按索引存取值(正向存取+反向存取):即可存也可以取 2 l=['a','b','c','d','e'] 3 # print(l[0]) 4 # print(l[-1]) 5 # print(id(l)) 6 # l[0]='a' 7 # print(id(l)) 8 9 # 强调强调强调!!!:对于不存在的索引会报错 10 # l[5]='aaaa' 11 12 # dic={"k1":111} 13 # dic['k2']=2222 14 # print(dic) 15 16 #3.2、切片(顾头不顾尾,步长) 17 # l=['a','b','c','d','e'] 18 # print(l[1:4]) 19 # print(l[::-1]) 20 21 #3.3、长度 22 # l=['a','b','c','d','e'] 23 # print(len(l)) 24 25 #3.4、成员运算in和not in 26 # l=['a','b','c','d','e'] 27 # print('a' in l) 28 29 #3.5、追加与insert 30 # l=['a','b','c','d','e'] 31 # l.append('xxx') 32 # l.append('yyy') 33 # print(l) 34 35 # l.insert(0,'xxxx') 36 # print(l) 37 38 #3.6、删除 39 l=['a','bbb','c','d','e'] 40 41 # del是一种通用的删除操作,没有返回值 42 # del l[0] 43 # print(l) 44 45 # dic={'k1':1} 46 # del dic['k1'] 47 # print(dic) 48 49 # l.remove(指定要删除的那个元素),没有返回值 50 # res=l.remove('bbb') 51 # print(l) 52 # print(res) 53 54 # l.pop(指定要删除的那个元素的索引),返回刚刚删掉的那个元素 55 # l=['a','bbb','c','d','e'] 56 # l.pop(-1) 57 # res=l.pop(1) 58 # print(l) 59 # print(res) 60 61 #3.7、循环 62 # l=['a','b','c','d','e'] 63 # for item in l: 64 # print(item)
类似需要掌握的操作:
1 l=['aaa','bb',345] 2 # l.clear() 3 # l.append([1,2,3]) 4 5 # for i in [1,2,3]: 6 # l.append(i) 7 # l.extend([1,2,3]) 8 9 # l.reverse() 10 11 # 只有在类中中所有元素都是同种类型的情况下才能用sort排序 12 # l=[1,3,2] 13 # l.sort(reverse=true) 14 15 l=['z','d','a'] 16 l.sort() 17 print(l)
总结:列表可以存多个值,并且有序、可变。
其他的数据类型下次补齐,等待更新...............
上一篇: D3.js 对角线生成器 (V3版本)
下一篇: 设计模式之命令模式(二)