Python str方法总结

Posted cyx-12

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python str方法总结相关的知识,希望对你有一定的参考价值。

1.  str.capitalize()

#capitalize 使字符串首字母大写
test = afaASN
v1 = test.capitalize()
print(v1)
Afaasn

 

 

2.  str.casefold()

test = afaASN
v1 = test.casefold()
print(v1)
# casefold 将字符串全部转为小写
# casefold 也可以将非英文转为小写
# lower 只支持英文字母转为小写
afaasn

 

 

3.  str.center()

# 按照给定字符和总宽度居中显示
# 如下共输出15个字符
# t共占8个字符
# 其余7个字符位用e进行填充
t = cYxFbFbB
v = t.center(15,e)
print(v)
eeeecYxFbFbBeee

 

 

4.  str.count()

# str.count(sub, start, end)
# 子字符串在原字符串中的个数。
# sub -- 需要搜索的子字符串
# start -- 字符串开始搜索的位置,不填默认0
# end -- 字符串结束搜索的位置,不填为最后
t = cYxFbFbB
v = t.count(b,5,7)
print(v)
1

 

 

5.  str.encode()

# str.encode
# encoding="utf-8", errors="strict"
# encoding -- 编码方式,errors -- 错误的处理方案。
# 默认为 ‘strict‘,是编码错误引起一个UnicodeError。
# 其他可能得值有 ‘ignore‘--‘ ’, ‘replace‘--‘?’, ‘xmlcharrefreplace‘-- 可扩展标记语言替换,
# ‘backslashreplace‘--反斜杠替代 以及codecs.register_error() 注册的所有值。
s = "aaa"
v = s.encode(ascii)
print(v)
baaa

 

 

6.  str.endswith()

# (suffix, start, end)
# suffix -- 子字符串
# start -- 长字符串中的开始位置,默认0
# end -- 长字符中结束位置,默认最后
a = d,cf,gtr,bnfg
v1 = a.endswith("g", )
print(v1: , v1)
v2 = a.endswith(fg)
print(v2: , v2)
v3 = a.startswith(d)
print(v3: , v3)
v4 = a.startswith(c)
print(v4: , v4)
v5 = a.endswith(,, 2, 9)
print(v5: , v5)
v1:  True
v2:  True
v3:  True
v4:  False
v5:  True

 

 

7.  str.expandtabs()

# (tabsize=8)
# 把Tab--‘	’变为其他长度的空格符,‘	‘默认为8
a = j	j	j	
g	g	g	
v = a.expandtabs(9)
print(v)
j        j        j        
g        g        g        

 

 

8.  str.find()

# (self, sub, start=None, end=None)
# 检测字符串中是否包含子字符串sub,start(开始)到end(结束)
# 如果包含子字符串,则返回开始的(最小的)索引值,否则返回-1。
# 默认为0和最后
a = jfunsjfbbvdf
v = a.find(fb,3,-1)
print(v)
v1 = a.find(fv)
print(v1)
#输出为 -1 表示没有找到
6
-1

 

 

9.str.rfind()

a = jfunsjfbbvdf
v2 = a.rfind(f)
print(v1)
# 输出最大索引
11

与find用法类似

 

9.  str.format() 

a = "你是{0}么?你是{1}么?"
v = a.format(狗子,屎蛋)
print(v)
你是狗子么?你是狗蛋么?

 

  format  的另一种用法

l = [狗子,屎蛋]
li = [a,b]
a = 你不是{0[0]},就是{1[1]}.format(l,li)
print(a)
你不是狗子,就是b

 

  format 填充

a = {0:%<10}.format(二货)
print(a)
a1 = {0:&>10}.format(二货)
print(a1)
a2 = {0:@^10}.format(二货)
print(a2)
二货%%%%%%%%
&&&&&&&&二货
@@@@二货@@@@

 

  format 精度与进制

 

# 保留几位小数
a = {0:.3f}.format(1/3)
print(a)
a1 = {0:.1f}.format(1/3)
print(a1) 
0.333
0.3

 

# 转换为二进制
a2 = {0:b}.format(8)
print(a2)
# 转换为八进制
a3 = {0:o}.format(8)
print(a3)
1000
10

 

# 千分位格式化
a = {:,}.format(111111111111)
print(a)
111,111,111,111

 

 

10.  str.format_map()

#  与str.format(**mapping)类似
# 区别在于format_map直接用字典,而不是复制一个
# 下面是官方例子,其中Default是dict的一个子类。
class Default(dict):
    def __missing__(self, key):
        return key


print("{name} was born in {country}".format_map(Default(name="Guide")))
Guide was born in country

 

 

11.  str.index()

# str, beg=0, end=len(string)
# 与str.find类似
# 区别在于,index如果找不到要寻到的字符,会得到ValueError
# 而find则返回-1。
print("djfdnvjdfdvhb".find("i"))
print("sffdvbv".index("i"))
Traceback (most recent call last):
-1
  File "C:/Users/123/PycharmProjects/py2018/test", line 6, in <module>
    print("sffdvbv".index("i"))
ValueError: substring not found

 

 

12.  str.rindex()

# str, beg=0, end=len(string)
# 用法与str.rindex一致
# 这个得到的是结束的(最大的)索引值。
print("jfbvjdsvbskj".rindex("j"))
11

 

 

13.  str.isalum()

# 如果字符串至少有一个字符,并且所有字符都是字母或数字则返回 True,否则返回 False
print(vbvhfb3453456.isalnum())
print([email protected]#$124.isalnum())
True
False

 

 

14.  str.isalpha()

# 如果字符串至少有一个字符,并且所有字符都是字母或汉字则返回 True,否则返回 False。
print(gnvj陈.isalpha())
print(bfv!陈.isalpha())
True
False

 

 

15.  str .isdecimal()  str.isdigit()  str.isnumeric()

# 3个都是判断字符串是不是数字字符
# str.isdecimal()  表面上就是: str 是阿拉伯数字123456这样的为True,汉字数字,罗马数字为False
# str.isdigit() 除了汉字数字为False,其他数字都为True,包括单字节数字b" "。
# str.isnumeric() 除了单字节数字b" "是Error,所有的数字都为True。
print(1234.isdecimal())
print(二②.isdecimal())

print(二②.isdigit())
print(②2.isdigit())

print(c2!.isnumeric())
print(3二②.isnumeric())
True
False
False
True
False
True

 

 16.  str.isidentifier()

# 检测字符串是否是字母开头。
print(hh12.isidentifier())
print(!23fd.isidentifier())
print(12cfg.isidentifier())
True
False
False

 

 

17.  str.islower()

#如果字符串中的所有字符都是小写,并且至少有一个字符,则返回True,否则返回False。
print(bh.islower())
print(Hh.islower())
True
False

 

 

18.  str.isprintable()

#判断是不是都为可见/可打印字符
print(oo
oo	oo.isprintable())
print(oo oo.isprintable())
False
True

 

 

19.  str.isspace()

#判断是否为空格字符(注意不是空)
print( .isspace())
print(h  h.isspace())
True
False

 

 

20.  str.istitle()

#字面上意思是:判断字符串能不能做标题
# 判断每个单词首字母是否大写
print(He He.istitle())
print(HE HE.istitle())
print(He he.istitle())
True
False
False

 

 

21.  str.title()

#把字符串变为标题格式。
print(he he he .title())
He He He 

 

 

22.  str.isupper()

#与str.islower()对应
# 如果字符串中的所有字符都是大写,并且至少有一个字符,则返回True,否则返回False。
print(HHHH.isupper())
print(Hhh.isupper())
True
False

 

 

23.  str.join()

 

#以str作为分隔符
# 将string所有的元素合并成一个新的字符串
# 若string为空,则TypeError
print(123.join([a,b,c,d]))
print(123.join(asdf))
a123b123c123d
a123s123d123f

 

 

24.  str.ljust(width, fillchar)

#得到一个原始字符串左对齐
# 并使用fiichar填充至指定长度的新字符串
# 若指定的长度小于原字符串的长度则返回原始字符串
# 与format的填充用法相似。
# width--指定长度
# fillchar--填充字符串,默认空格字符。
print(asd.ljust(10,"!"))
print(asd.ljust(2,@))
print(asd.ljust(10))
asd!!!!!!!
asd
asd  

 

 

25.  str.rjust(width, fillchar)

#得到一个原始字符串右对齐
# 并使用fiichar填充至指定长度的新字符串
# 若指定的长度小于原字符串的长度则返回原始字符串
# 与format的填充用法相似。(用法与ljust一致)

 

 

26.  str.lower()

# 把所有字母转化为小写
# 与str.upper()相对
# 与str.casefold()区别

 

 

27.  str.upper()

# 把所有字母转化为大写

 

 

28.  str.lstrip(chars)

# 删除str左边所有出现在chars子字符串
# chars为空时默认空格字符
print( who are you .lstrip())
print(who are you .lstrip(ghw))
print(who are you .lstrip(Whz))
who are you 
o are you 
who are you 

 

 

29.  str.rstrip(chars)

# 与str.lstrip(chars)对应且方法一致
# 删除str右边所有出现在chars子字符串
# chars为空时默认空格字符。

 

 

30.  str.strip(chars)

# 与str.lstrip(chars)和str.rstrip(chars)用法一致
# 这个是删除两边所有出现在chars子字符串
# chars为空时默认空格字符。

 

 

31.  str.maketrans(intab, outtab)    str.translate()

# 得到一个用于str.translate()的映射,其实就是一个字典。
# intab--是原始字符
# outtab--翻译后的字符,长度与intab相等
intab = abcde
outtab = 12345
name = asdfjhjcdjkle
# str.maketrans得到的字典翻译str
x = ‘‘.maketrans(intab, outtab)
# x就是maketrans得到的字典
# 字典中的映射是字符对应的Unicode编码
print(x)
print(name.translate(x))
{97: 49, 98: 50, 99: 51, 100: 52, 101: 53}
1s4fjhj34jkl5

 

 

32.  str.partition(char)  str.split(char, count)

# 作用都是字符串分割
# str.partition(char)根据字符串char分割str
# 得到一个3元素元组(只识别第一次出现的字符串)。
# char不能为空
print(www.baidu.com.partition(.))
(www, ., baidu.com)

 

#  str.split(char,count)  根据字符串char分割str
# 得到一个列表(识别所有的char,并且char不包含在列表内)
# char默认为空格符。
# char--子字符串
# count--切割次数,默认全部。
print(www.baidu.com.cn.split(.,3))
[www, baidu, com, cn]

 

 

33.  str.rpartition(char)

# 用法与str.partition(char)一致
# str.rpartition(char)根据字符串char分割
# str得到一个3元素元组(只识别最后一次出现的字符串
# char不能为空

 

 

34.  str.rsplit(char, count)

#与str.split用法一致
# 但是str.rsplit是从后往前工作
#     str.split是签到后工作
print(aswwsdjnvwwnh.rsplit(ww,1))
print(aswwsdjnvwwnh.split(ww,1))
[aswwsdjnv, nh]
[as, sdjnvwwnh]

 

 

35.  str.splitlines(keepends)

# 按照行(‘
‘, ‘
‘, 
‘)分隔,得到各行元素的列表
# 如果keepends为 False,不包含换行符
# 如果为 True,则保留换行符
# 默认为False
print(as
as	as
as
as.splitlines())
print(as
as	as
as
as.splitlines(False))
print(as
as	as
as
as.splitlines(True))
[as, as	as, as, as]
[as, as	as, as, as]
[as
, as	as
, as
, as]

 

 

36.  str.replace(old, new, count)

把字符串中的 old(旧字符串) 替换成 new(新字符串)
# 替换不超过count 次,count为空时不限次数。
print(asdfghasdf.replace(as,12,1))
12dfghasdf

 

 

37.  str.startswitch(start, end)

# startswith() 方法用于检查字符串是否是以指定字符串开头
# 如果是则返回True,否则返回False
# start,end未指定范围,默认0,len(str)-1
print(asdfg.startswith(as))
print(asdfg.startswith(as,1,4))
True
False

 

 

38.  str.swapcase

# 大写变小写,小写变大写
print(asdfASDFaAsSASas.swapcase())
ASDFasdfAaSsasAS

 


以上是关于Python str方法总结的主要内容,如果未能解决你的问题,请参考以下文章

Python str方法总结

Python str方法总结

python数据处理之Series及DataDrame字符串str方法总结

python 字符串提取信息方法总结

Python学习总结

Python_Day_02 str内部方法总结