一、字符串基本操作
1.基本字符串定义
s1 = "hello" s2 = '''hello''' s3 = """hello""" print(s1*3) print(s2*3) print(s3*3)
2.字符串遍历
s = "hello" #方式1 for c in s: print(c) print("----------------------------------------------") #方式2 for i in range(len(s)): print(s[i]) print("----------------------------------------------") #方式3 i = 0 while i < len(s): print(s[i]) i += 1 print("----------------------------------------------")
3字符串切片
s = '01234567890123456789' s1 = s[2:4] print(s1) print(s)
切片得到左闭右开的区间[2,4)
s = '01234567890123456789' #s[开头下标:结束下标:步长] s1 = s[2:4] print("1: ",s1) s1 = s[5:] print("2: ",s1) s1 = s[:10] print("3: ",s1) s1 = s[3:11] print("4: ",s1) #步长 s1 = s[3:11:2] print("5: ",s1) #倒序 这里是左闭右闭区间 s1 = s[10:2:-1] print("6: ",s1) s1 = s[10:1:-2] print("7: ",s1)
二、字符串的常用方法
1.find函数
s = 'hello world hello world Hello world Python' #find(self, sub, start=None, end=None) idx = s.find('o') print(idx) idx = s.find('o',8 ,20) print(idx) #rfind也是一样的参数 idx = s.rfind('o',8 ,20) print(idx) #index(self, sub, start=None, end=None) idx = s.index('o',8 ,20) print(idx) #index和find函数的参数一样,但是主要是返回值不一样,find函数找不到字串时会返回-1.index找不到字串时程序会崩溃,产生异常信息,导致程序无法执行 idx = s.index('o',8 ,10) print(idx) idx = s.find('o',8 ,10) print(idx)
2.replace函数
s = 'hello world hello world Hello world Python' #替换replace() #替换时默认替换所有的符合的字串 print(s.replace('l','P')) print(s) print('---------------------------------------------------------------------------------------------') #替换时替换3个符合的字串 print(s.replace('l','P',3)) print(s)
3.count函数
s = 'hello world hello world Hello world Python' #count计数,查找字符串在父串出现的次数 print(s.count('o')) #count计数,查找字符串在父串出现的次数,指定开头和结尾下标 print(s.count('o',1,10))
4.分割和连接类的函数
s = 'hello world hello world Hello world Python' #split分割字符串 a = s.split(' ') print(a) print(type(a)) #split分割字符串 a = s.split('or') print(a) print(type(a)) ss = 'hello\tworld hello\t\nworld Hello\nworld\r\nPython' print(ss) #splitlines分割字符串 按\r\n或者\n分割 print(ss.splitlines()) print("-----------------------------------------------------------------------------------------------") #partition分割,按分割条件将字符分割成三部分,分割条件前,分割条件,分割条件后 s = 'hello world hello world Hello world Python' print(s.partition('ll')) #rpartition() 从右侧进行分割 print(s.rpartition('ll')) #join()连接的值是可迭代的,我们这里目前直接出了字符串可迭代的 #结果是每一个元素都被'-'连接了 s = 'hello world hello world Hello world Python' print('-'.join(s)) print("-------------------------------------------------------------------------") #join的简单应用 s = 'hello world hello world Hello world Python' s_s = s.split() print(s_s) j_s = '$'.join(s_s) print(j_s) #join存在的问题:一个元素是无法连接的 print('$'.join('A'))
5.字符串判断函数
#判断是否以指定字符串开头 print('1380013800'.startswith('138')) print('1830013800'.startswith('138')) print('1230013800'.startswith('138')) print('-------------------------------------------------------------------------------------------------------------------') #判断网址后缀 print('www.xxxgov.com'.endswith('.gov')) print('www.xxxgov.gov'.endswith('.gov')) print("----------------------------------------------------------------------------------------------------") #判断大写 print("hello".isupper()) print("Hello".isupper()) print("HELLO".isupper()) print("----------------------------------------------------------------------------------------------------") #判断小写 print("hello".islower()) print("Hello".islower()) print("HELLO".islower()) print("----------------------------------------------------------------------------------------------------") #判断字符串是否为纯字母 print("he22lo".isalpha()) print("He123o".isalpha()) print("HELLO".isalpha()) print("----------------------------------------------------------------------------------------------------") #判断字符串是否为纯数字 print("1234323".isdigit()) print("He123o".isdigit()) print("HELLO".isdigit()) print("----------------------------------------------------------------------------------------------------") #判断字符串是否包含数字或字符 print("he2--o".isalnum()) print("He123o".isalnum()) print("123123".isalnum())
6.去除字符串的
strip函数去除空格
s = '| Hello world |' #去除空格 print(s) #这里空格没去掉的原因是因为有'|'字符 print(s.strip()) print('_______________________________________________________________________________________________') s = ' Hello world ' #去掉两边的空格 print('|' + s.strip() + '|') print('|' + s.rstrip() + '|') print('|' + s.lstrip() + '|') #去掉空格函数组合方式 print('_______________________________________________________________________________________________') s = ' Hello world ' ret = s.split() print(ret) print(''.join(ret))
三、元组
1.元组的基本操作
元组格式:(值,……)
元组类型:tuple
元组的下标使用和字符串使用相同
t1 = () print(t1) print(type(t1)) #定义包含其他数据类型的元组 t3 = ('a','b','hello','world') print(t3) #元组嵌套元组 t4 = (1233,'b','hello',True,t3) print(t4) print("——————————————————————————————————————————————————————————————————————————————————————————————————————") #定义具有一个元素的元组,特殊,注意,重点 t5 = (1) print(t5) print(type(t5)) t5 = ('1') print(t5) print(type(t5)) print("——————————————————————————————————————————————————————————————————————————————————————————————————————") #使用类型名定义元组 t6 = tuple() print(t6) print(type(t6)) #注意元组内要放入可迭代的数据,我这里放的是字符串 t7 = tuple('hello') print(t7)
2.元组的遍历
t = (1,2,3,4,5,"hello") #方法1 for in for v in t: print(v) #方法2 for in range for i in range(len(t)): print(t[i]) #方法3 while i = 0 while i < len(t): print(t[i]) i += 1 print("——————————————————————————————————————————————————————————————————————————————————————————————————————————————————") #嵌套元组的遍历 #这里的报错是因为混合元组里面有一个元素,所以变成int类型的元素,是不可以迭代的 t = (1,2,3,(4,5,6),(7,8,9)) for v in t: for v2 in v: print(v2)
解决混合元组迭代的问题
#嵌套元组的遍历 #这里的报错是因为混合元组里面有一个元素,所以变成int类型的元素,是不可以迭代的 t = (1,2,3,(4,5,6),(7,8,9)) for v in t: #判断参数1是否是参数2的类型对象 if isinstance(v,tuple): for v2 in v: print(v2) else: print(v)