[Python]字符串处理与常用函数

本文详细介绍了Python字符串的基本操作,包括如何判断字符串是否为空、使用切片访问子字符串、常见的字符串运算符以及内建函数的应用。还涵盖了字符串的大小写转换、文本对齐、首尾截取、拆分连接以及映射表maketrans的功能。此外,讲解了查找替换方法,如count、startswith、endswith、find和replace等。
摘要由CSDN通过智能技术生成


字符串是Python中最常用的数据类型。我们可以使用引号( '")来创建字符串。
字符串格式化相关内容参见《 Python3输入输出与字符串格式化

字符串

Python不支持单字符类型,单字符也是作为一个字符串使用。

三引号可以可创建复杂字符串:

  • 允许字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符;
  • 常用三引号做多行注释与函数注释;
  • 三引号为三个单引号或者双引号,里面的内容原样输出。

判空

判断字符串是否为空(s为None或空串``):if not s:
或通过len(s)获取字符串长度,判断是否为0(此时要保证s不为None,s)。

:python中会把None、False、0、空串"", 空列表[], 空字典{}, 空元组()作为假

切片

访问子字符串,可使用方括号[]来截取切片,字符串的截取的语法格式如下(a设为"Runoob"):

  • a[1:] <=> a[-5:] = ‘unoob’
  • a[:1] <=> a[:-5] = ‘R’
    str-

运算符

以下表格中为常用的运算符(a设为"Hello",b设为"Python")

操作符描述实例
+字符串连接a + b输出: HelloPython
*重复输出字符串a*2输出:HelloHello
[]索引获取字符a[1]输出:e
[start:stop]截取字符串中的一部分([start,stop))a[1:4]结果: ell
in成员运算符 - 如果字符串中包含给定的字符返回 True‘H’ in a 输出结果 True
not in成员运算符 - 如果字符串中不包含给定的字符返回 True‘M’ not in a 输出结果 True
r/R原始字符串 - 所有的字符串都是直接按照字面的意思来使用;字符串中的反斜线(\)是一个普通字符,不具有转义功能r’D:\temp\test.txt’

内建函数

字符串可编码为字节数组:s.encode(encoding='UTF-8', errors='strict');在需要时使用bytes.decode()来解码为字符串。

通过s.expandtabs(tabsize=8),可把字符串中的tab转换为空格。

判断内容

判断字符串中字符内容分类:

方法描述
isalnum()所有字符都是字母或数字,则返回 True
isalpha()所有字符都是字母,则返回 True
isdecimal()所有字符都是十进制数,则返回 True
isdigit()所有字符都是数字,则返回 True
isidentifier()如果字符串是标识符,则返回 True
islower()所有字符都是小写,则返回 True
isnumeric()所有字符都是数,则返回 True
isprintable()所有字符都是可打印的,则返回 True
isspace()所有字符都是空白字符,则返回 True
istitle()如果字符串遵循标题规则,则返回 True
isupper()所有字符都是大写,则返回 True

查找替换

a in b判断b是否包含a(in实际使用的是对象内的__contains__方法)

查找是否包含指定的文本内容:

方法描述
count(s, beg=0,end=len(str))返回s在字符串中出现的次数
startswith(s)如果以s开头,则返回 true
endswith(s, beg=0,end=len(str))如果字符串以s结尾,则返回 true
find(s, beg=0,end=len(str))返回字符串中s开始的索引值,若未找到返回-1
index(s, beg=0,end=len(str))与find类似,但为找到抛出异常
replace(old, new[,max])将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次
rfind()与find类似,但返回最后一个匹配
rindex()与index类似,但返回最后一个匹配
max(s)返回s中最大的字符
min(s)返回s中最小的字符

大小写

大小写转换

方法描述
capitalize()把字符串的第一个字符转换为大写
title()把每个单词的首字符转换为大写
lower()把字符串转换为小写
upper()把字符串转换为大写
swapcase()切换大小写
casefold()把字符串转换为小写与lower相比可转换除ASCII外的其他语言(如德语等)

文本对齐

对齐字符串文本:

方法描述
center(width[,fillchar])返回居中的字符串(两边用fillchar填充,默认空格)
ljust(width[,fillchar])返回字符串的左对齐版本
rjust(width[,fillchar])返回字符串的右对齐版本
zfill(width)返回长度为width字符串(头部填充0)

首尾截取

移除空白或指定字符

方法描述
lstrip()截掉字符串左边的空格或指定字符
rstrip()删除尾部空格(或指定字符)
strip()头尾同时删除

拆分连接

常用内建函数如下:

方法描述
s.join(seq)以s为分隔符,把seq串联成一个字符串
rsplit()从尾部开始分割(未指定max是与split相同)
split(str=“”,num=string.count(str))以str为分隔符拆分字符串,若指定num则最多返回num+1个子串
splitlines([keepends])按行拆分字符串并返回列表(若keepends为False,则子串不包括换行符;否则包括)
映射表maketrans

Python3.4+,使用内建函数 bytearray.maketrans()、bytes.maketrans()、str.maketrans()来创建映射表。

str.maketrans(x[, y[, z]) 返回一个可供 str.translate() 使用的转换对照表

  • x:必需,字符串中要替代的字符组成的字符串
  • y:可选,相应的映射字符的字符串
  • z:可选,要删除的字符
分割partition

s.partition(sub)方法用来根据指定的分隔符将字符串进行分割:搜索字符串sub,并返回包含三个元素的元组:

  • 第一个匹配sub之前的所有内容
  • 搜索字符串sub
  • 第一个匹配sub之后的所有内容

rpartition() 方法类似于 partition() 方法,只是该方法是从目标字符串的尾部开始搜索分割符:

  • 最后一个匹配sub之前的所有内容
  • 搜索字符串sub
  • 最后一个匹配sub之后的所有内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值