python字符串相关函数
2018-11-08 本文已影响0人
憧憬001
Python 的字符串常用内建函数如下:
1.统计
- count(str)返回 str 在 string 里面出现的次数
- len(string)返回字符串长度
str1 = "123456789066666"
print(str1.count("6"))
print(len(str1))
执行结果:6、15
2.对齐
- 字符串.center(width, fillchar) - 居中
- 字符串.ljust(width, fillchar) - 左对齐
- 字符串.rjust(width, fillchar) - 右对齐
- zfill (width)返回长度为 width 的字符串,原字符串右对齐,前面填充0
width - 正整数,表示新的字符串的宽度
fillchar - 字符, 填充字符串
str1 = '居中'
new_str = str1.center(8, '*')
print(new_str)
str2 = "左对齐"
new_str = str2.ljust(7, '*')
print(new_str)
str3 = "右对齐"
new_str = str3.rjust(7, '*')
print(new_str)
效果如下
***居中***
左对齐****
****右对齐
3.最值
- max(字符串):返回字符串 str 中最大编码值所对应的字符串
- min(字符串):返回字符串 str 中最小编码值所对应的字符串
print(max('ahajsxnzh4784mkou'))
print(min('ftyrejibhxnzh23456njiu'))
4.查找与替换
查找
- 字符串.startwith(查找值) 如果是,返回 True,否则返回 False
- 字符串.endwith(查找值) 如果是,返回 True,否则返回 False
str1 = "123456"
print(str1.startswith("12"))
print(str1.endswith("6"))
执行结果:都是True
- find(str, beg=0 end=len(string))检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1
- rfind(str, beg=0,end=len(string))类似于 find()函数,不过是从右边开始查找
- index(str, beg=0, end=len(string))跟find()方法一样,只不过如果str不在字符串中会报一个异常
- rindex( str, beg=0, end=len(string))类似于 index(),不过是从右边开始
str1 = "123456"
print(str1.find("3"))
print(str1.rfind("6"))
print(str1.find("7"))
print(str1.index("3"))
print(str1.rindex("6"))
2
5
-1
2
5
- isdecimal()|检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false
替换
- replace(old, new [, max])把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次
str1 = "123456"
str2 = "abc"
print(str1.replace("123", str2))
执行结果:abc456
- 字符串.capitalize() - 将字符串第一个字符转换成大写
str1 = 'hello'
new_str = str1.capitalize()
print(new_str)
执行结果:Hello
- upper()转换字符串中的小写字母为大写
- lower()转换字符串中所有大写字符为小写
- swapcase()将字符串中大写转换为小写,小写转换为大写
str1 = "abc***DEF***123456"
print(str1.upper())
print(str1.lower())
print(str1.swapcase())
ABC***DEF***123456
abc***def***123456
ABC***def***123456
5.判断
-
isalnum()如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
-
isalpha()如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False
-
isdigit()如果字符串只包含数字则返回 True 否则返回 False..
str3 = "123456abc"
print(str3.isalnum())
print(str3.isalpha())
print(str3.isdigit())
print(str3.isdecimal())
执行结果:True、False、False、False
- islower()如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
- isupper()如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
str3 = "123456abc"
print(str3.islower())
print(str3.isupper())
执行结果:True、False
-
isnumeric()如果字符串中只包含数字字符,则返回 True,否则返回 False(中文数字也可以)
-
isspace()如果字符串中只包含空白,则返回 True,否则返回 False.
-
istitle()如果字符串是标题化的(见 title())则返回 True,否则返回 False
str4 = "123一二三壹幺萬"
str5 = " "
str6 = "Asjdkjdk123"
print(str4.isnumeric())
print(str5.isspace())
print(str6.istitle())
执行结果:True、True、True
6.截取、合并和删除
- lstrip()截掉字符串左边的空格或指定字符
- split(str="", num=string.count(str))num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num 个子字符串
- rstrip()删除字符串字符串末尾的空格
- join(seq)以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
str2 = " 000 000**00"
print(str2.lstrip())
str3 = "**0000 "
print(str3.lstrip("**"))
str4 = "123abc000"
print(str4.split("23"))
print(str3.rstrip())
str5 = '**'
str6 = 'abc'
print(str5.join(str6))
000 000**00
0000
['1', 'abc000']
**0000
a**b**c
7.其他
- bytes.decode(encoding="utf-8", errors="strict")Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回
- encode(encoding='UTF-8',errors='strict')以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'
- expandtabs(tabsize=8)把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8
- title()返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
- translate(table, deletechars="")根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中
- splitlines([keepends])按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符
- maketrans()创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标