# 1.索引和切片
# python中的索引:
"""
索引分为正向索引和反向索引,正向索引从0开始,反向索引从-1开始
在序列中使用索引取值的时候,使用的是中括号
"""
# str1='osdfoas'
# print(str1[3]) #输出结果f
# print(str1[5]) #输出结果a 正向索引
# print(str1[-2]) #输出结果a 反向索引
# python中的切片:[start_index:end_index:step]
"""
切片取值时,不包含结束索引
step步长,不能为0,默认为1(默认为1时可以不用写)如果步长为-1,就是反向取值
切片时,取的值里面含有开始下标和结束下标,可以不用表达出来
[:4] 表示取值范围从开始下标到下标位为4的所有值
[2:] 表示取值范围从下标位为2到结束下标的所有值
[:] 表示取值范围为从开始下标到结束下标的所有值,
"""
# str1='osdfoas'
# print(str1[3:5:1]) #输出结果:fo
# print(str1[1:5]) #输出结果:sdfo
# print(str1[::2]) #输出结果:odos,取值范围为所有时,可以不用写起始下标,步长为2
# print(str1[:4]) #输出结果:osdf 取的下标为0-4
# print(str1[3:]) #输出结果:foas 取的下标为3到最后的值
# print(str1[:-1]) #输出结果:osdfoa 不取结束索引值
# print(str1[::-1]) #输出结果:saofdso 面试题:如果实现一个字符串反转或者反的排序
# print(str1[-2:-5:-1]) #输出结果: aof
# print(str1[2:5:-1]) #输出结果:无输出,因为2-5是正向,步长-1是反向,相互矛盾
# 2.python中的字符串,不可变,有序
"""
字符串一般使用单引号和双引号来表示,也可以使用三引号
"""
# str1='lsudtoqw'
# print(type(str1)) #输出结果:<class 'str'>
# 字符串常用函数
# 1.capitalize()函数,实现字符串首字母大写
# print(str1.capitalize()) #输出结果:Lsudtoqw
# 2.title()函数,将字符串首字母大写以及特殊字符后面的第一个字母大写
# str2 = "user_name"
# str3 = 'user**name'
# print(str2.title()) #输出结果:User_Name
# print(str3.title()) #输出结果:User**Na_Me
# 3.count()函数,统计字符出现的次数
# str1 ='auoetuaohdoaowe'
# print(str1.count('a')) #输出结果:3
# print(str1.count('ao')) #输出结果:2 将‘ao’看做一个整体
# 4.join()函数,将字符串中所有的元素使用某个字符进行连接
# str1='duoceshi'
# print('*'.join(str1)) #输出结果:d*u*o*c*e*s*h*i
# str1 = 'hello'
# str2 = 'dcs'
# print(str1+' '+str2) #输出结果:hello dcs 字符串之间可以直接进行相加,字符串和数字不能直接相加
# 5.split()函数,使用某个字符将字符串进行分割,返回的是一个列表
# str1 = 'duoceshi'
# print(str1.split('c')) #输出结果:['duo', 'eshi']
# print(type(str1.split('c'))) #输出结果:<class 'list'>
# str2 ='duoaceashi'
# print(str2.split('a')) #输出结果:['duo', 'ce', 'shi']
# print(str2.split('z')) #输出结果 ['duoaceashi']
# print(str2.split('o')[0]) #输出结果:du
# 将user_name 转成UserName
# str1 ='user_name'
# str2 = str1.title().split('_')
# str3 = str2[0] +str2[1]
# str4 = ''.join(str2)
# print(str3)
# print(str1.title().split('_')[0] +str1.title().split('_')[1]) #等效于print(str3)
# print(str4)
# print(''.join(str1.title().split('_'))) #等于print(str4)
#6.strip(),删除字符串开头和结尾的字符
# lstrip() 删除以什么开头的字符
# rstrip() 删除以什么结尾的字符
# str1 ='aasdofaboab'
# print(str1.strip('ab')) #删除首尾为a或者b的字符,满足条件一直删,直到出现的不是a或者b, 输出结果:sdofabo
# print(str1.lstrip('as')) #输出结果:dofaboab 删除以a或者s开头的字符 l表示left
# print(str1.rstrip('bo')) #输出结果:aasdofaboa 删除以b或者0结尾的字符 r表示right
# 7.startswith() 判断字符串以什么字符开头 返回布尔值
# endswith() 判断字符以什么结尾
# str1='abcdefg'
# print(str1.startswith('ac')) #输出结果:False 判断是否以‘ac’开头
# print(str1.endswith('fg')) #输出结果:True
# 8.find()函数,从索引0开始查找从左往右,找到第一个就停止查找,并且返回索引位。
# str1='aasdofac'
# print(str1.find('d')) #输出结果:2
# print(str1.find('a')) #输出结果:0
# print(str1.find('z')) #输出结果:-1 #如果查找的字符不在字符串中返回-1
# print(str1.find('as')) #输出结果:1,将as看做一个整体,如果找不到也是返回-1
# rfind()函数,从右往左查找字符,显示的都是正向索引
# print(str1.rfind('a')) #输出结果:6 从后面往前面找,显示正向索引
#9.replace()函数,替换,从左往右进行替换
# str1 = 'duoceshiduo'
# print(str1.replace('d','c')) #输出结果:cuoceshicuo 不表明替换次数,默认全部替换
# print(str1.replace('d','c',1)) #输出结果:cuoceshiduo 用c替换字符串中的d,替换一次
# print(str1)
#file:///C:\Users\asus\AppData\Roaming\Tencent\QQTempSys\%W@GJ$ACOF(TYDYECOKVDYB.png10.is判断函数,返货是布尔值
# str1 = 'ABCdeFg'
# print(str1.lower()) #输出结果:abcdefg 将字符全部装换为小写
# print(str1.upper()) #输出结果:ABCDEFG 将字符全部转换为大写
# print(str1.istitle()) #输出结果:False 判断首字母是否为大写,且只能首字母为大写
# print(str1.isupper()) #输出结果:False 判断所有字符是否都为大写
# print(str1.islower()) #输出结果:False 判断所有字符是否都为小写
# print(str1.isdigit()) #输出结果 False 判断字符串是否全为数字
# print(str1.isalpha()) #输出结果:True 判断字符串是否全为字母
# print(str1.isalnum()) #输出结果:True 判断字符串中是否全为数字,字母或者数字和字母组合
#3.python中的列表,list。
"""
有序(可以使用索引和切片的方式或许列表里面的元素),可变
序列:有序排列,像python中的元组,列表,字符串等都是属于序列
列表的表达方式:[] 定义一个空列表:list1 =[]
"""
|
|