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

 


 

 

 

 

 

 


 

posted @ 2018-10-23 00:38  必秋秋  阅读(318)  评论(0)    收藏  举报