python字符串相关函数

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()创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标

你可能感兴趣的:(python字符串相关函数)