Skip to content

Latest commit

 

History

History
135 lines (79 loc) · 6.04 KB

字符串操作.md

File metadata and controls

135 lines (79 loc) · 6.04 KB

字符串操作

python好用很大程度上是因为它的字符串好用.字符串是扁平序列和不可变序列,因此可以迭代可以按位取值可以切片但不可变.除了满足扁平序列和不可变序列的接口外,字符串还有一些额外的接口可以方便的实现复杂的功能

表示字符串

python中字符串有4种表示方式,以"'表示的字符串表示一行字符串,以"""或者'''表示的字符串表示长字符串,其中可以有换行.

python的字符串在这表示之外还可以使用前缀表示一些特殊意义

bytes

使用b表示定义的不是字符串而是一串bytes

x = b"aqsx"
x
b'aqsx'
type(x)
bytes

原始字符串

原始字符串表示所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符.原始字符串除在字符串的第一个引号前加上字母r(可以大小写)以外与普通字符串有着几乎完全相同的语法

x = r"dsld\n"
x
'dsld\\n'

格式化字符串[3.6]

python3.6后新增了格式化字符串的语法糖,可以使用前缀f来定义一个字符串,其中可以使用命名空间中的变量来填充内容

a = 12.4785
b = "啥"
x = f"a是:{a},精确到2位是{a:.2f},b是{b}"
x
'a是:12.4785,精确到2位是12.48,b是啥'

本质上它是.format()方法的语法糖,上面的例子可以写成

x = "a是:{a},精确到2位是{a:.2f},b是{b}".format(a=a,b=b)
x
'a是:12.4785,精确到2位是12.48,b是啥'

字符串专用接口

接口名 说明
join(seq) 以指定字符串作为分隔符,将seq中所有的元素(的字符串表示)合并为一个新的字符串
split(str="", num=string.count(str)) num=string.count(str))str为分隔符截取字符串,如果num有指定值,则仅截取num+1个子字符串
splitlines([keepends]) 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数keependsFalse,不包含换行符,如果为True,则保留换行符.
center(width, fillchar) 返回一个指定的宽度width居中的字符串,fillchar为填充的字符,默认为空格.
count(str, beg= 0,end=len(string)) 返回strstring里面出现的次数,如果beg或者end指定则返回指定范围内str出现的次数
encode(encoding='UTF-8',errors='strict') encoding指定的编码格式编码字符串,如果出错默认报一个ValueError的异常,除非 errors指定的是ignore或者replace
endswith(suffix,beg=0, end=len(string)) 检查字符串是否以obj结束,如果beg或者end指定则检查指定的范围内是否以obj结束,如果是则返回True,否则返回False
startswith(substr, beg=0,end=len(string)) 检查字符串是否是以指定子字符串substr开头,是则返回True,否则返回False.如果begend指定值,则在指定范围内检查.
expandtabs(tabsize=8) 把字符串string中的tab符号转为空格,tab符号默认的空格数是8.
find(str, beg=0, end=len(string)) 检测str是否包含在字符串中,如果指定范围begend,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-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(),不过是从右边开始.
capitalize() 将字符串的第一个字符转换为大写
swapcase() 将字符串中大写转换为小写,小写转换为大写
title() 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见istitle())
lower() 转换字符串中所有大写字符为小写.
upper() 转换字符串中的小写字母为大写
isalnum() 如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False
isdigit() 如果字符串只包含数字则返回True否则返回False.
isnumeric() 如果字符串中只包含数字字符,则返回True,否则返回False
isalpha() 如果字符串至少有一个字符并且所有字符都是字母则返回True, 否则返回False
islower() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True,否则返回False
isupper() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True,否则返回False
istitle() 如果字符串是标题化的(见title())则返回True,否则返回False
isspace() 如果字符串中只包含空白,则返回True,否则返回False.
ljust(width[, fillchar]) 返回一个原字符串左对齐,并使用fillchar填充至长度width的新字符串,fillchar默认为空格.
rjust(width,[, fillchar]) 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度width的新字符串
lstrip() 截掉字符串左边的空格或指定字符.
rstrip() 删除字符串字符串末尾的空格.
strip([chars]) 在字符串上执行lstrip()rstrip()
maketrans() 创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串表示需要转换的字符;第二个参数也是字符串表示转换的目标.
replace(old, new [, max]) 将字符串中的old替换成new,如果max指定则替换不超过max次.
translate(table, deletechars="") 根据str给出的表(包含 256 个字符)转换string的字符,要过滤掉的字符放到deletechars参数中
zfill (width) 返回长度为width的字符串,原字符串右对齐,前面填充0
isdecimal() 检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。