Python自学 - 字符串处理函数
1 Python自学 - 字符串处理函数
1.1 字符串的处理函数
字符串处理函数列表,使用dir(str)
即可获取完整的列表:
'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith',
'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum',
'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier',
'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle',
'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans',
'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind',
'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split',
'splitlines', 'startswith', 'strip', 'swapcase', 'title',
'translate', 'upper', 'zfill'
1.1.1 字符串判断函数
1.1.1.1 isalnum
: 判断字符串是否只包含字母和数字
print("666".isalnum()) # True
print("abc666".isalnum()) # True
print("+-*/".isalnum()) # False
1.1.1.2 isalpha
: 判断字符串是否全部为字母
print("abc".isalpha()) # True
print("abc666".isalpha()) # False
print("+-*/".isalpha()) # False
1.1.1.3 isascii
: 判断字符串是否都是ASCII码表字符
print("abc".isascii()) # True
print("abc666".isascii()) # True
print("+-* /".isascii()) # True
print("中文".isascii()) # False
1.1.1.4 isdecimal
:判断字符串是否全部为10进制数字
print("abc".isdecimal()) # False
print("abc666".isdecimal()) # False
print("6.666".isdecimal()) # False
print("1.34e12".isdecimal()) # False
print("123".isdecimal()) # True
1.1.1.5 isdigit
:判断字符串是否都为10进制数字
print("abc".isdigit()) # False
print("abc666".isdigit()) # False
print("6.666".isdigit()) # False
print("1.34e12".isdigit()) # False
print("123".isdigit()) # True
print("0x12AC".isdigit()) # False
print("-123".isdigit()) # False
1.1.1.6 isidentifier
:判断字符串是否满足标识符标准
print("abc".isidentifier()) # True
print("abc666".isidentifier()) # True
print("_id_123".isidentifier()) # True
print("1.34e12".isidentifier()) # False
print("123".isidentifier()) # True
print("0x12AC".isidentifier()) # False
print("-123".isidentifier()) # False
print("这也算标识符".isidentifier()) # True
1.1.1.7 islower
:判断字符串是否都是小写
print("abc".islower()) # True
print("ABCabc".islower()) # False
print("123".islower()) # False
print("不算小写".islower()) # False
1.1.1.8 isnumeric
:判断字符串是否都为数字(中文也可以)
print("abc".isnumeric()) # True
print("0xAAFF".isnumeric()) # False
print("123".isnumeric()) # True
print("123.0".isnumeric()) # False
print("一二三".isnumeric()) # True
print("壹贰叁".isnumeric()) # True
print("IV".isnumeric()) # False
1.1.1.9 isprintable
:判断字符串是否都是可显示字符
print("abc".isprintable()) # True
print("中文".isprintable()) # True
print("\t\n".isprintable()) # False
1.1.1.10 isspace
:判断字符串是否都是空白
print(" ".isspace()) # True
print("\t".isspace()) # True
print("\t\n".isspace()) # True
print("abc".isspace()) # False
1.1.1.11 istitle
:判断字符串是否满足标题标准(单词首字母大写)
print(" ".istitle()) # Fasle
print("\t".istitle()) # Fasle
print("abc".istitle()) # Fasle
print("Abc".istitle()) # True
print("This Is A Title".istitle()) # True
1.1.1.12 isupper
:判断字符串是否都是大写
print(" ".isupper()) # Fasle
print("abc".isupper()) # Fasle
print("Abc".isupper()) # False
print("ABC".isupper()) # True
print("ABC.--".isupper()) # True 带标点也算大写
print("中文不是大写".isupper()) # False
1.1.2 大小写转换
1.1.2.1 capitalize
: 首字母大写
print('this is not a title'.capitalize()) # This is not a title
1.1.2.2 lower
: 字母全部转小写
print('This Is A Title'.lower()) # this is a title
1.1.2.3 swapcase
: 切换大小写, 即大写变小写,小写变大写
print('This Is A Title'.swapcase()) # tHIS iS a tITLE
1.1.2.4 title
: 切换成标题规范
print('this is a title'.title()) # This Is A Title
1.1.2.5 upper
: 全部转大写
print('this is a title'.upper()) # THIS IS A TITLE
1.1.3 搜索和替换
1.1.3.1 count
: 统计字符出现次数
print('this is a test string.'.count('i')) # 3
print('this is a test string.'.count('i', 3)) # 2 , 从第4个字符开始统计
print('this is a test string.'.count('i', 3, 8)) # 1 统计索引3~8间的字符
print('this is a test string.'.count('is')) # 2 可以统计子串
1.1.3.2 endswith
: 判断字符串是否结束于指定子串
print('this is a test string.'.endswith('ing.')) # True
print('this is a test string.'.endswith('is', 0, 4)) # True, 检查0~4位置的子串是否结束于is
1.1.3.3 find
: 查找子串位置,找不到返回-1。
print('this is a test string.'.find('is')) # 2 搜索子串is
print('this is a test string.'.find('is', 0, 4)) # 2, 在索引0~4之间搜索子串is
print('this is a test string.'.find('is', 5)) # 5, 从索引5开始搜索子串is
print('this is a test string.'.find('is', 7, 10)) # -1, 从索引7~10间搜索子串is
1.1.3.4 index
: 查找子串位置,找不到丢出异常。
print('this is a test string.'.index('is')) # 2 搜索子串is
print('this is a test string.'.index('is', 0, 4)) # 2, 在索引0~4之间搜索子串is
print('this is a test string.'.index('is', 5)) # 5, 从索引5开始搜索子串is
print('this is a test string.'.index('is', 7, 10)) # ValueError: substring not found, 从索引7~10间搜索子串is
1.1.3.5 replace
: 替换指定子串为新字符串
print('this is a test string.'.replace('is', 'IS')) # thIS IS a test string. is全部替换为IS
print('this is a test string.'.replace('is', 'IS', 1)) # thIS is a test string. is替换为IS,只替换1次
print('this is a test string.'.replace('ok', 'OK', 1)) # this is a test string. 没有替换,直接返回原字符串
1.1.3.6 rfind
: 从右向左的顺序搜索
print('this is a test string.'.rfind('is')) # 5 搜索子串is
print('this is a test string.'.rfind('is', 0, 4)) # 2, 在索引0~4之间搜索子串is
print('this is a test string.'.rfind('is', 5)) # 5, 从索引5开始搜索子串is
print('this is a test string.'.rfind('is', 7, 10)) # -1, 从索引7~10间搜索子串is
1.1.3.7 rindex
: 从右向左的顺序搜索
print('this is a test string.'.rindex('is')) # 5 搜索子串is
print('this is a test string.'.rindex('is', 0, 4)) # 2, 在索引0~4之间搜索子串is
print('this is a test string.'.rindex('is', 5)) # 5, 从索引5开始搜索子串is
print('this is a test string.'.rindex('is', 7, 10)) # ValueError: substring not found, 从索引7~10间搜索子串is
1.1.3.8 startswith
: 检查字符串是否开始于指定的子串
print('this is a test string.'.startswith('th')) # True
print('this is a test string.'.startswith('is', 5, 8)) # True, 检查索引5~8位置的子串是否开始于is
1.1.4 字符串对齐与清理
1.1.4.1 center
: 字符居中对齐
print('Title'.center(20, '-')) # -------Title-------- 填充为20个字符,将目标字符串居中,使用“-”前后点缀
1.1.4.2 expandtabs
: 展开制表符
print('Title .'.expandtabs()) # Title . 展开制表符,默认按8字符对齐补齐空格
print('Title .'.expandtabs(4)) # Title .展开制表符,按给定的4字符对齐补齐空格
1.1.4.3 ljust
: 字符串左对齐
print('Title'.ljust(20, '-')) # Title--------------- 填充为20个字符,将目标字符串居左,使用“-”前后点缀
1.1.4.4 lstrip
: 去除左边的指定字符
print('--string'.lstrip('-')) # string 去除左边的-
print(' string'.lstrip()) # string 去除左边的空白符(空格、制表符)
1.1.4.5 rjust
: 字符串右对齐
print('Title'.rjust(20, '-')) # ---------------Title 填充为20个字符,将目标字符串居右,使用“-”前后点缀
1.1.4.6 rstrip
: 去除右边的指定字符
print('string--**'.rstrip('-*')) # string 去除左边的-*
print('string '.rstrip()) # string 去除右边的空白符(空格、制表符)
1.1.4.7 strip
: 去除字符串中的指定字符
print('***string--**'.strip('-*')) # string 去除左边的*和右边的-*
print(' string '.strip()) # string 去除左右两边的空白符(空格、制表符)
1.1.4.8 zfill
: 字符串补0
print('123'.zfill(8)) # 00000123 在字符串左侧补充0,以便使字符串满足给定的长度
1.1.5 字符串分割与组合
1.1.5.1 split
:分割字符串
print('this is a test'.split()) # ['this', 'is', 'a', 'test'] 默认按空白符分割
print('this is a test'.split('i')) # ['th', 's ', 's a test'] 按字母i分割字符串
1.1.5.2 join
:字符串连接
print('.'.join(['a', 'b', 'c'])) # a.b.c #将列表元素以“.”连接
print('-'.join(('a', 'b', 'c'))) # a-b-c #将元组元素以“-”连接
作者声明:本文用于记录和分享作者的学习心得,水平有限,难免存在表达错误,欢迎交流和指教!
Copyright © 2022~2024 All rights reserved.