python学习之字符串
字符串的“魔法"
capitalize():首字母大写
test = "aLex"
# 首字母大写
v= test.capitalize()
print(v)

lower():所有字符变为小写
casefold():所有变小写,caseflod更牛逼,很多未知的相对应变小写
#所有变小写,caseflod更牛逼,很多未知的相对应变小写
test = 'ALEX'
v1 =test.casefold()
print(v1)
v2 = test.lower()
print(v2)

center():设置宽度,并将内容居中
# 20代表总长度,没有加填充的符号,默认是空白填充
# * 填充,填充只能是一个字符,且可有可无
test = 'alex'
v1 = test.center(20)
v2 = test.center(20,'*')
print(v1)
print(v2)

#字符串放左边后填充 test1 = 'akda' v1 = test1.ljust(20,'*') print(v1) #字符串放右边后填充 test2 = 'sjds' v2 = test2.rjust(20,'*') print(v2) 输出: akda**************** ****************sjds
count():去字符串中寻找,寻找子序列的出现次数
#在完整的字符串中寻找,ex出现2次的情况
test = "aLexalex"
v = test.count('ex')
print(v)
#可以设置要寻找字符串的起始位置,结束位置
#下面是从第五个位置开始寻找,顺序是从0开始计算的,aLexal即012345
test = "aLexalexr"
v = test.count('ex',5)
print(v)
#从第5个位置到第6个位置开始寻找,
test = "aLexalexr"
v = test.count('ex',5,6)
print(v)
endswith():#以什么什么结尾
startswith():以什么什么开始
test = "alex"
v1 = test.endswith('ex')
v2 = test.startswith('a')
v3 = test.startswith('b')
v4 = test.startswith('q')
print(v1)
print(v2)
print(v3)
print(v4)

find():从开始往后找,找到第一个之后,获取其位置,找不到的时候,报-1
test = 'alexalex'
v = test.find('ex')
print(v)

#指定范围内获取对应位置
test = 'alexalex'
v = test.find('ex',5,8)#位置大于等于5小于8
print(v)

#找不到位置的时候报-1
test = 'alexalex'
v = test.find('8')
print(v)

#index索引,与find类似,index找不到,报错;建议忽略这个index,直接用find查找
test = 'alexalex'
v = test.index('ex')
print(v)

#找不到直接报错
test = 'alexalex'
v = test.index('8')
print(v)

#格式化,将一个字符串中的占位符替换为指定的值
#格式化占位符的两种方式,方式一:
test = 'i am {name},age {a}'
print(test)
v =test.format(name='alex',a = 19)
print(v)

# 方式二:数字从小到大,0开头
test = 'i am {0},age {1}'
print(test)
v =test.format('alex',19)
print(v)

#格式化,传入的值 {'name':'alex','a':19} 是这种格式的
test = 'i am {name},age {a}'
print(test)
v =test.format_map({'name':'alex','a':19})
print(v)
#判断字符串中是否只包含:字母或数字
test = 'uasf890_+'
v = test.isalnum()
print(v)

test = 'uasf890_'
v = test.isalnum()
print(v)

test = 'uasf890'
v = test.isalnum()
print(v)

# \t 制表符 \n 换行
#expandtabs(),断句,遇到制表符时填充空字符,括号内的数值为断句的间隔字符值
test = 'asdzzx\temail\npppppsjjhj\tassss\nvdasdaz'
v1 = test.expandtabs(4)
print(v1)

#是否是字母或汉字:isalpha()
test1 = '123'
v1 = test1.isalpha()
print(v1)
test2 = "abc"
v2 = test2.isalpha()
print(v2)
test3 = '汉字'
v3 = test3.isalpha()
print(v3)
test4 = '汉字ABC'
v4 = test4.isalpha()
print(v4)

#判断当前输入的是否是数字:isdecimal()、isdigit()
test5 = '123'
v5 = test5.isdecimal()
v6 = test5.isdigit()
print(v5)
print(v6)
#判断特殊数字的情况
test6 ='②'
v7 =
test6.isdecimal()
v8 = test6.isdigit()
print(v7)
print(v8)

#大小写转换
test7 = 'aLEx' v9 = test7.swapcase() print(v9)

#检查是否是字母、数字、下划线 开头 a = 'def' b = '1def' c = '_def' v1 = a.isidentifier() v2 = b.isidentifier() v3 = c.isidentifier() print(v1,v2,v3) #输出 True False True
#判断是否是数字 test7 ='1' test8 = '②' test9 = '二' v7 = test7.isdecimal()#支持十进制的小数,如1.2.3.4.5 v8 = test8.isdigit()#支持十进制小数,也支持特殊字符的小数,①、②、④等 v9 = test9.isnumeric()#支持十进制消失,也支持特殊字符的小数,还支持中文的数字,如一、二、三等 print(v7,v8,v9) 输出:True True True
#是否存在不可显示的字符,如 \t \n 是打印不出来的 # \t 制表符 # \n 换行 test1 = 'asfjaibkvb' test2 = 'asfaf\tsdadd' test3 = 'asdasd\nasdas' v1 = test1.isprintable() v2 = test2.isprintable() v3 = test3.isprintable() print(v1,v2,v3) 输出:True False False
#判断是否全部是空格 test1 = ''#没有字符,null test2 = ' '#一个空格 test3 = 'aksh jfcia'#字符串加空格字符 test4 = ' '#多个空格 v1 = test1.isspace() v2 = test2.isspace() v3 = test3.isspace() v4 = test4.isspace() print(v1,v2,v3,v4) 输出:False True False True
#判断是否是标题 #变成标题 test1 = 'Create a new string object from the given object' v1 = test1.istitle()#判断是否是标题 print(v1) v2 = test1.title()#转变为标题,标题即每个首字母都是大写 print(v2) v3 = v2.istitle() print(v3) 输出: False Create A New String Object From The Given Object True
# ***** :将字符串中的每一个元素按照指定分隔符进行拼接 test = '你是风儿我是沙' print(test) t = ' ' v1 = t.join(test)#将分隔符通过赋值的方式添加拼接 print(v1) v2 = ' '.join(test)#将分隔符直接添加拼接 print(v2) v3 = '_'.join(test)#分隔符为下划线的情况 print(v3) 输出: 你是风儿我是沙 你 是 风 儿 我 是 沙 你 是 风 儿 我 是 沙 你_是_风_儿_我_是_沙
#判断是否全部是大小写和转换为大小写 test1 = 'Alex' v1 = test1.islower() v2 = test1.lower() v3 = v2.islower() v4 = test1.isupper() v5 = test1.upper() v6 = v5.isupper() print(v1,v2,v3,v4,v5,v6) 输出: False alex True False ALEX True
#剔除 test1 = " alex " v1 = test1.lstrip()#剔除左边的空格 print(v1)
左边的空格被剔除,保留右边的空格
test1 = " alex " v1 = test1.rstrip()#剔除右边的空格 print(v1)
右边的空格被剔除,保留左边的空格
test1 = " alex " v1 = test1.strip()#空白都剔除了 print(v1)
左右两边的空白都剔除了
#除了可以去除空白,还能去除\n和\t test1 = '\nasds' test2 = '\tsdsa' v1 = test1.lstrip() v2 = test2.lstrip() print(v1) print(v2)
#指定内容进行去除 test1 = 'asfhias' v1 = test1.lstrip('as') print(v1) 输出:fhias
#指定内容进行去除,多匹配的时候 test1 = 'abcdefg' #从右往左defg在匹配内容中有,进行去除,到c的时候,匹配中不存在,停止去除,输出adebc v1 = test1.rstrip('defglj') print(v1) 输出: adebc
#指定字符串对应关系,进行替换,这两个方法通常会组合使用 v = 'asibsdokaskdmankzxocalcbss' m = str.maketrans('abcde','12345')#指定字符串对应关系 new_v = v.translate(m)#替换字符串 print(new_v) 输出: 1si2s4ok1sk4m1nkzxo31l32ss
#分割 test1 = 'adgskjhsdisajlsiv' v1 = test1.partition('s')#从左边开始找到第一个 s 进行分割,永远只能把字符串分割成3份,包含分割的元素s print(v1) 输出: ('adg', 's', 'kjhsdisajlsiv')
#分割 test1 = 'adgskjhsdisajlsiv' v1 = test1.rpartition('s')#从右边开始找到第一个 s 进行分割,永远只能把字符串分割成3份 print(v1) 输出: ('adgskjhsdisajl', 's', 'iv')
#split 也是分割,由左往右,不包含分割的元素,如下用法
#rsplit,也是分割,一样的用法,是由右往左 test = 'dfgaskdshjasokfsjac' v1 = test.split('s') v2 = test.split('s',1) v3 = test.split('s',2) print(v1) print(v2) print(v3) 输出: ['dfga', 'kd', 'hja', 'okf', 'jac'] ['dfga', 'kdshjasokfsjac'] ['dfga', 'kd', 'hjasokfsjac']
# splitlines分割,只能根据换行符分割,True,False:是否保留换行 test ='hsdfjba\nikashdi\nbvfide' v1 = test.splitlines() v2 = test.splitlines(True) v3 = test.splitlines(False) print(v1) print(v2) print(v3) 输出: ['hsdfjba', 'ikashdi', 'bvfide'] ['hsdfjba\n', 'ikashdi\n', 'bvfide'] ['hsdfjba', 'ikashdi', 'bvfide']
# startswith:判断以XXX开头 # endswith:判断以XXX结尾 test = 'difhias' v1 = test.startswith('d') v2 = test.startswith('a') v3 = test.endswith('as') v4 = test.endswith('ad') print(v1) print(v2) print(v3) print(v4) 输出: True False True False
# swapcase: 大小写转换 test = 'ALex' v = test.swapcase() print(v) 输出: alEX


浙公网安备 33010602011771号