当前位置: 首页 > article >正文

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.


http://www.kler.cn/a/458138.html

相关文章:

  • Java开发-后端请求成功,前端显示失败
  • 移动端如何实现上拉加载
  • Gemma2 2B 模型的model.safetensors.index.json文件解析
  • 【无线传感网】无线传感器网络拓扑控制技术
  • 深度学习——损失函数汇总
  • 极品飞车6的游戏手柄设置
  • upload-labs关卡记录10
  • SQL 实战:聚合函数高级用法 – 多层分组与动态统计
  • 【Kafka】数据清理机制
  • ubuntu 18.04安装GCOPTER(最新)
  • 17、【ubuntu】【gitlab】【nuttx】自动识别远程仓库默认分支名
  • JVM学习-内存结构(一)
  • 《机器学习》——线性回归模型
  • OSI 七层模型 | TCP/IP 四层模型
  • 自由学习记录(31)
  • LeetCode:404.左叶子之和
  • 【多维DP】【hard】力扣1223. 掷骰子模拟
  • 【Java】面试题 并发安全 (1)
  • C语言-详细讲解-字符串加密
  • 视频里面的音乐怎么提取出来?工具分享和教程示例
  • 前端工作中问题点拆分
  • 4-Linux 文件系统组成
  • 爬虫过程中遇到异常怎么办?
  • C++ 学习第22天:智能指针与异常处理
  • 硬件工程师面试题 21-30
  • 2024西北工业大学noj(C语言)记录全100题