Python中string总结

Python中string总结

为了熟悉基础知识,为了在遇到问题的时候能想起来string的某个函数,结合自己测试(如下图vs会列出所有函数以及相关说明)以及上网搜索,做一个string的总结,持续添加。ps:string本身是不可更改的,所以在初次赋值后不会变化除非重新赋值

这里写图片描述

string大小写相关
>>> str = 'string test'
>>> str.upper()      #转大写
'STRING TEST'
>>> str.lower()      #转小写
'string test'
>>> str.swapcase()   #大小写互换
'STRING TEST'
>>> str.capitalize() #字符串首字母变大写,其余变小写
'String test'
>>> str.title()      #标题化字符串,本质:分隔符(非字母都视为分隔符)分开的字符串全部做capitalize操作
'String Test'
>>> strSpec = 'hI,?mY!nAme王is*jACK&how(are@you'
>>> strSpec.title()
'Hi,?My!Name王Is*Jack&How(Are@You'
>>> import string
>>> string.capwords(str,' ') #这是模块中的方法,指定分隔符,分开后做capitalize操作
'String Test'
>>> string.capwords(str,'s')
'sTring tesT'
>>> string.capwords(str,'i')
'StriNg test'
>>> string.capwords(str,'trin')
'StrinG test'
string编码解码

对编码还了解不深先记录下来,以后用到或者遇到再专门整理编码知识。ps:python3中没有decode方法,Python3中的str是未编码的

>>> str = '字符串测试'     #未编码
>>> str
'字符串测试'
>>> bs = str.encode('utf-8') #编码,编码成utf-8
>>> bs
b'\xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2\xe6\xb5\x8b\xe8\xaf\x95'
>>> bs.decode('utf-8')       #解码
'字符串测试'
string格式输出、对齐
>>> str = 'string test'
>>> str.center(20,'*') #中对齐:输出20个字符,不足用*补足,str中间对齐
'****string test*****'
>>> str.center(20)     #第二个参数不填默认为空格
'    string test     '
>>> str.center(1)      #该方法至少要有一个参数,第一个参数小于str长度默认输出str
'string test'
>>> str.ljust(20,'^')  #左对齐:str左对齐,其他同center
'string test^^^^^^^^^'
>>> str.rjust(20,'$')  #右对齐:str右对齐,其他同center
'$$$$$$$$$string test'
>>> str.zfill(20)      #右对齐左边填充0:相当于rjust(int,'0')
'000000000string test' 
string判断
>>> str = 'string123' 
>>> strSpec = 'string***test'   
>>> str.isalnum()       #是否全是字母和数字
True
>>> str.isdigit()      #是否全是数字  
False
>>> str.isalpha()      #是否全是字母
False
>>> str.islower()      #是否全是小写,只对string中的字母进行判断
True
>>> strSpec.islower()
True
>>> str.isupper()       #是否全是大写,只对string中的字母进行判断
False
>>> str.isspace()       #是否全是空白字符 
False
>>> str.istitle()       #是否所有单词字首都是大写,结合title()理解
True
>>> str.startswith('str') #判断字符串是否以'str'开头  
True
>>> str.endswith('123')   #判断字符串是否以'123'结尾  
True
>>> str.isidentifier()  #是否是合法的标识符,实际上这里判断的是变量名是否合法
True
>>> str = '煎饼'
>>> str.isidentifier()
True
>>> 煎饼 = 'pancake'
>>> 煎饼.isalnum()
True
>>> str = '\t\\string'  
>>> str.isprintable()  #是否可打印,即是否包含转义字符
False
>>> str = r'\t\\string'
>>> str.isprintable()
True
string查找替换
>>> str = 'string test'
>>> str.find('t')           #查找字符串,返回查到的第一个匹配的索引,没有则返回-1
1
>>> str.rfind('t')          #查找字符串,返回查到的最后一个匹配的索引,没有则返回-1
10
>>> str.index('t')          #查找字符串,返回查到的第一个匹配的索引,没有则报错
1
>>> str.rindex('t')         #查找字符串,返回查到的最后一个匹配的索引,没有则报错
10
>>> str.count('t')          #从i到j字符串的个数,i和j类似切片,可倒数,超出字符串长度不会报错
3
>>> str.count('t',3)
2
>>> str.count('t',0,3)
1
>>> str.replace('st','ST',2) #替换,'ST'替换'st',从前往后替换2处,不加数字参数默认全部替换
'STring teST'
>>> str = str.center(20,'*')
>>> str
'****string test*****'
>>> str.strip('*')           #删除字符串首尾匹配的字符,不加参数默认删除空格
'string test'
>>> str.lstrip('*')          #删除字符串左匹配的字符,不加参数默认删除空格
'string test*****'
>>> str.rstrip('*')          #删除字符串右匹配的字符,不加参数默认删除空格
'****string test'
>>> str = '\tTab'
>>> str.count(' ')
0
>>> str.expandtabs().count(' ') #把制表符转为空格,不加参数默认8个
8
>>> str.expandtabs(5).count(' ')
5
string分割
>>> Delimiter = '-'
>>> Delimiter.join('string test')   #join()将序列中的元素以指定的字符串(Delimiter)连接生成一个新的字符串
's-t-r-i-n-g- -t-e-s-t'
>>> Delimiter.join(['string','test'])
'string-test'
>>> Delimiter.join(('string','test'))
'string-test'
>>> '--'.join('string')
's--t--r--i--n--g'

>>> str = 'string test'
>>> str.split('t',2)        #字符串分割,从左边开始2个't'进行分割,不填默认全部分割,
['s', 'ring ', 'est']
>>> str.rsplit('t',2)       #字符串分割,从右边开始2个't'进行分割,不填默认全部分割,
['string ', 'es', '']
>>> str.partition('t')      #字符串分割保留分割字符串,从左边匹配的第一个
('s', 't', 'ring test')
>>> str.rpartition('t')     #字符串分割保留分割字符串,从右边匹配的第一个
('string tes', 't', '')
>>> str = 'string\ntest'
>>> str.splitlines()        #按照行('\r', '\r\n', \n')分隔,默认为false,几不保留分行符
['string', 'test']
>>> str.splitlines(True)    #同上,保留分行符
['string\n', 'test']
string模块中的属性和方法

string模块中的方法在这不深入不总结在此,以后遇到在总结,下面列出一些属性。

>>> import string
>>> string.ascii_letters
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
>>> string.ascii_uppercase
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> string.digits
'0123456789'
>>> string.hexdigits
'0123456789abcdefABCDEF'
>>> string.octdigits
'01234567'
>>> string.printable
'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ \t\n\r\x0b\x0c'
>>> string.punctuation
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
>>> string.whitespace
' \t\n\r\x0b\x0c'
  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值