本文共 8958 字,大约阅读时间需要 29 分钟。
1.用途
用来描述某个物体的特征:姓名,性别,爱好等
2.定义方式
变量名 = '字符串'如:name = 'huazai'
3.常用操作和内置方法
1.按索引取值:(只能取值,不能改变值) 通过字符串的索引值可以取到对应位置的字符 >>> name = 'huazai' >>> name[1] 'u' >>> name[-1] 'i'2.切片 通过索引值的范围进行取值 >>> name = 'huazai' >>> name[0:3] #按范围取值,默认步长为1,正向 'hua' >>> name[-1:-4:-1] #逆向取值 'iaz' >>> name[0:5:2] #按步长取值 'haa'3.长度 函数len()计算长度 >>> name = 'huazai' #实质是调用name.__len__() >>> len(name) 64.成员运算 in 和not in >>> name = 'huazai' >>> 'a' in name True >>> 'f' not in name True >>> 'f' in name False5.移除空白strip、lstrip、rstrip 默认移除字符串开头和结尾处的空白 >>> str1 = ' hua zai ' >>> print(str1.strip()) hua zai #字符串中间的空白并不会移除,常用在与让用户输入内容时,对其进行处理。括号内可以指定移除的字符串 >>> str1 = '***hua zai****' >>> print(str1.strip('*')) hua zai >>> print(str1.lstrip('*')) hua zai**** >>> print(str1.rstrip('*')) ***hua zai6.切分splist 将字符串按某种定义的符号进行拆分成列表 >>> str1 = 'root:x:0:0::/root:/bin/bash' >>> print(str1.split(':')) ['root', 'x', '0', '0', '', '/root', '/bin/bash'] >>> print(str1.rsplit(':',1)) #从右开始切分,只切分一次 ['root:x:0:0::/root', '/bin/bash']7.lower,upper 将字母变成大小写 >>> str1 = 'huazai' >>> print(str1.upper()) HUAZAI >>> str2 = 'HuaZai' >>> print(str2.lower()) huazai8.startswith,endswith 判断字符串以什么开头、什么结尾 >>> str1 = 'huazai123' >>> print(str1.startswith('hua')) True >>> print(str1.startswith('123')) False >>> print(str1.endswith('123')) True9.format的三种玩法 常用在输出的时候,不需要根据占位符的位置顺序指定变量的顺序,方便,也是常用的方法。 >>> print('my name is {name},i am {age} old'.format(age=18,name='huazai')) my name is huazai,i am 18 old10.join 将字符串已某种符号隔开,可迭代的对象必须为字符串 >>> print('*'.join(['my','name','is','huazai'])) my*name*is*huazai11.replace 将字符串1替换成字符串2, >>> str1 = 'huazai' >>> str2 = 'zai123' >>> print(str1.replace('zai',str2)) huazai123 >>> print(str1) #源字符串并不会被改变,因为字符串是不可变对象 huazai 可以指定替换次数 >>> str1 = 'huazaizaizaizai' >>> str2 = 'zai123' >>> print(str1.replace('zai',str2,2)) huazai123zai123zaizai12.isdigit 判断一个字符串是否是数字 >>> a = 'huazai' >>> print(a.isdigit()) False其他操作(了解部分):13.find,rfind,index,rindex,countfind >>> str1 = 'huazai' >>> print(str1.find('a',1,5)) 2 >>> print(str1.find('l',1,5)) #不存在返回-1 -1index >>> print(str1.index('a')) 2 >>> print(str1.index('l')) #不存在会报错 Traceback (most recent call last): File "", line 1, in ValueError: substring not foundcount >>> print(str1.count('a')) 214.center,ljust,rjust,zfill >>> str1 = 'huazai' >>> print(str1.center(50,'*')) **********************huazai********************** >>> print(str1.ljust(50,'*')) huazai******************************************** >>> print(str1.rjust(50,'*')) ********************************************huazai >>> print(str1.rjust(50)) huazai >>> print(str1.zfill(50)) 00000000000000000000000000000000000000000000huazai15.expandtabs 将tab键转换成几个空格 >>> str1 = 'hua\tzai' >>> print(str1) hua zai >>> print(str1.expandtabs()) hua zai >>> print(str1.expandtabs(1)) hua zai16.captalize,swapcase,title >>> str1 = 'huA Zai' >>> print(str1.capitalize()) Hua zai >>> print(str1.swapcase()) HUa zAI >>> print(str1.title()) Hua Zai17.is数字系列 #在python3中 num1=b'4' #bytes num2=u'4' #unicode,python3中无需加u就是unicode num3='四' #中文数字 num4='Ⅳ' #罗马数字 #isdigt:bytes,unicode print(num1.isdigit()) #True print(num2.isdigit()) #True print(num3.isdigit()) #False print(num4.isdigit()) #False #isdecimal:uncicode #bytes类型无isdecimal方法 print(num2.isdecimal()) #True print(num3.isdecimal()) #False print(num4.isdecimal()) #False #isnumberic:unicode,中文数字,罗马数字 #bytes类型无isnumberic方法 print(num2.isnumeric()) #True print(num3.isnumeric()) #True print(num4.isnumeric()) #True18.is其他 print('===>') name='huazai' print(name.isalnum()) #字符串由字母或数字组成 print(name.isalpha()) #字符串只由字母组成 print(name.isidentifier()) print(name.islower()) print(name.isupper()) print(name.isspace()) print(name.istitle())
1.用途
用来描述同一属性可以有多种,如:爱好,课程等
2.定义方式
habbies=['basketball','read','movie','music']或者L= list('basketball','read','movie','music')
3.常用操作和内置方法
1.必会操作 按索引存取值 >>> habbies=['basketball','read','movie','music'] >>> habbies[0] 'basketball' >>> habbies[-1] 'music' >>> habbies[2]='girls' >>> habbies ['basketball', 'read', 'girls', 'music'] 切片(与字符串类似) >>> habbies=['basketball','read','movie','music'] >>> habbies[0:3] ['basketball', 'read', 'movie'] >>> habbies[0:4:2] ['basketball', 'movie'] >>> habbies[-1:0:-1] ['music', 'movie', 'read'] 长度len >>> habbies=['basketball','read','movie','music'] >>> len(habbies) 4 成员运算in、not in >>> habbies=['basketball','read','movie','music'] >>> habbies=['basketball','read','movie','music'] >>> 'read' in habbies True >>> 'girl' not in habbies True 追加append >>> habbies=['basketball','read','movie','music'] >>> habbies.append('girls') >>> habbies ['basketball', 'read', 'movie', 'music', 'girls'] 删除del、remove >>> habbies ['basketball', 'read', 'movie', 'music', 'girls'] >>> habbies.pop() 'girls' >>> habbies >>>['basketball', 'read', 'movie', 'music'] >>>habbies=['basketball','read','movie','music'] >>>habbies.remove('movie') >>>print(habbies) >>>['basketball', 'read', 'music'] 循环: habbies=['basketball','read','movie','music'] 1. for item in habbies: print(item) 2.i=0 while i
1.作用
将多个值以key-value的形式保存,取值速度快
2.定义
其中key是不可变类型(数字,字符串,元组),value可以是任意类型user_info = {'name':'huazai','sex':'male','age':'18'}或者user_info = dict(name='huazai',sex='male',age=18)或者{}.fromkeys(('name','sex','age'),None)
3. 常用操作
#常用操作#存取值,按key存取user_info = {'name':'huazai','sex':'male','age':'18'}print(user_info['name'])user_info['habbies']='girls'print(user_info)#长度print(len(user_info))print(user_info.__len__())#成员运算in、not inprint('name' in user_info)print('habbies' not in user_info)# 删除del user_info['name']user_info.pop('name')# 键值对操作 keys() value() 键值对itemsprint(user_info.keys())print(user_info.values())print(user_info.items())# 循环for key in user_info: print(key,user_info[key])# 了解方法# fromkeyprint(user_info.fromkeys('name'))# clear 清空字典user_info.clear()#setdefault 如果key存在不会被覆盖,见练习二user_info.setdefault()# update 更新d = {'name':'egon'}user_info.update(d)print(user_info)# get 不存在返回Noneprint(user_info.get('habbies'))# copyL = user_info.copy()print(L)
4.练习
#练习#1 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中#即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}L = [11,22,33,44,55,66,77,88,99,90]d ={'k1':[],'k2':[]}for i in L: if i > 66: d['k1'].append(i) else: d['k2'].append(i)print(d)'''2 统计s='hello alex alex say hello sb sb'中每个单词的个数结果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}'''s = 'hello alex alex say hello sb sb'L = s.split(" ")print(L)d = {}for key in L: count = L.count(key) d.setdefault(key,count)print(d)
1. 作用:
# 存储多个不可变的值,主要用来只读的数据
2. 定义
# t = (1,2,3,4,5)# t = tuple(1,2,3,4,5)
3. 常用操作和内置方法
# 掌握# 按索引取值,同列表一样,但是只能取值t = (1,2,3,'huazai')print(t[2])print(t[-1])# 切片,也同列表操作print(t[1:3])print(t[-1:0:-1])#长度print(len(t))print(t.__len__())#成员运算 in、not inprint('huazai' in t)#循环for i in t: print(i)# 内置方法# index 元素索引位置print(t.index(1))# count 元素统计print(t.count('huazai'))
1. 作用
去重,关系运算,
2. 定义
集合:可以包含多个元素,用逗号分割,集合的元素遵循三个原则:1:每个元素必须是不可变类型(可hash,可作为字典的key)2: 没有重复的元素3:无序s1 = {1,2,2,3,4,5,6}s2 = {4,5,6,7,8,9}
3.常用操作和内置方法
#1、长度len# print(len(s1))#2、成员运算in和not in# print(2 in s1)#3、|合集print(s1 | s2)#4、&交集print(s1 & s2)#5、-差集print(s1 - s2)#6、^对称差集print(s1 ^ s2)#7、==print(s1 == s2)#8、父集:>,>=print(s1 > s2)#9、子集:<,<=print(s1 < s2)
4. 练习
''' 一.关系运算 有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合 pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'} linuxs={'wupeiqi','oldboy','gangdan'} 1. 求出即报名python又报名linux课程的学员名字集合 2. 求出所有报名的学生名字集合 3. 求出只报名python课程的学员名字 4. 求出没有同时这两门课程的学员名字集合'''# pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}# linuxs={'wupeiqi','oldboy','gangdan'}# print(pythons & linuxs)# print(pythons | linuxs)# print(pythons - linuxs)# print(pythons ^ linuxs)'''二.去重 1. 有列表l=['a','b',1,'a','a'],列表元素均为可hash类型,去重,得到新列表,且新列表无需保持列表原来的顺序 2.在上题的基础上,保存列表原来的顺序 3.去除文件中重复的行,肯定要保持文件内容的顺序不变 4.有如下列表,列表元素为不可hash类型,去重,得到新列表,且新列表一定要保持列表原来的顺序l=[ {'name':'egon','age':18,'sex':'male'}, {'name':'alex','age':73,'sex':'male'}, {'name':'egon','age':20,'sex':'female'}, {'name':'egon','age':18,'sex':'male'}, {'name':'egon','age':18,'sex':'male'},] '''l = ['a','b',1,'a','a']print(set(l))L= []for i in l: if i not in L: L.append(i)print(L)
转载于:https://blog.51cto.com/ronghuachen/2050442