一、什么是字符串
字符串是由0或多个字符组成的有序字符序列 字符串有一对单引号或一对双引号表示 有一对三引号或三双引号表示,可表示多行字符
二、字符编码
ASCII
比较字符ASCII码值的大小: 空格<数字<大写字母<小写字母 Unicode chr(u):Unicode转单字符 order(x):单字符转Unicode UTF-8 …
三、字符串操作符
x + y:连接两个字符串x和y n * x 或 x* n:复制n次字符串x x in s :如果x是s的子串,返回True, 否则返回False x not in s:如果x不是s的子串,返回True, 否则返回False
四、字符串的格式化
4.1 format()方法的基本使用
语法:< 模板字符串>.format(<逗号分隔的参数>)
注:
<模板字符串>由一系列的 槽 组成,用来控制修改字符串中嵌入值出现的位置,其基本思想是将format()方法的<逗号分隔的参数>中的参数按照序号关系替换到<模板字符串>的槽中。槽用大括号{} 表示,如果大括号中没有序号,则按照出现顺序替换 如果大括号中指定了使用参数的序号<按照序号对应参数替换,调用format()方法后会返回一个新的字符串,参数从0开始编号。 3. format()方法可以非常方便地连接不同类型的变量或内容,如果需要输出大括号,采用{{表示{,}}表示}
4.2 format()方法的格式控制
format()方法中<模板字符串>的 槽 除了包括参数序号,还可以包括格式控制信息。 语法:{< 参数序号>: < 格式控制标记>}
<格式控制标记>用来控制参数显示时的格式
4.2.1 宽度:
>>> s = 'python'
>>> "{0:30}".format(s) #宽度设置为30 默认左对齐 用空白填充
'python '
>>> s = 'python'
>>> "{0:->30}".format(s) #宽度设置为30 右对齐 用横线填充
'------------------------python'
>>> "{0:-^30}".format(s) #宽度设置为30 居中对齐 用横线填充
'------------python------------'
4.2.2 精度:
由小数点(.)开头。对于 浮点数,精度表 示输出的有效位数。对于 字符串,精度表示输出的最大长度
```
>>> "{0:.2f}".format(12345.6789)
'12345.68'
>>> "{0:h^20.3f}".format(12345.6789)
'hhhhh12345.679hhhhhh'
>>> "{0:.4}".format("python")
'pyth'
```
4.2.3 类型:
表示输出整数和浮点数类型的格式规则 语法:{.5a} a代表各种字符
字母 功能 %b 输出整数的二进制方式 %c 输出整数对应的Unicode字符 %d 输出整数的十进制方式 %o 输出整数的八进制方式 %x 输出整数的小写十六进制方式 %X 输出整数的大写十六进制方式 %e 输出浮点数对应的小写字母e的指数形式 %E 输出浮点数对应的大写字母E的指数形式 %f 输出浮点数的标准浮点形式 %% 输出浮点数的百分形式 %p 用十六进制数格式化变量的地址
>>> a = “I love Python.”
>>> b = “*”
>>> c = “^”
>>> print(“{0:{1}^25}”.format(a,b))
>>> print(“{0:{1}^{2}}”.format(a,b,25))
>>> print(“{0:{1}{3}{2}}”.format(a,b,25,c))
*****I love Python.******
*****I love Python.******
*****I love Python.******
```
五、字符串的特殊字符
5.1. 转义符
表达特定字符的本意 “abc(”)" 结果为为 abc" 形成一些不可打印的组合
字母 功能 \b 回退 \n 换行,光标移动到下行首 \r 回车,光标移动到本行首 \ (在行尾时) 续行符 \ 反斜杠符号 ’ 单引号 ‘’ 双引号 \a 响铃 \e 转义 \000 空 \f 换页 \t 横向制表符 \v 纵向制表符 \oyy 八进制数,yy代表的字符 eg:\o12代表换行 \xyy 十六进制数,yy代表的字符 eg:\x0a代表换行
六、字符串方法
6.1 字符串的大小写转换
函数 功能 str.capitalize 将字符串第一个字母变大写 str.casefold 将字符串中所有大写字母变小写字母 str.lower 将字符串中所有大写字母全部转换为小写 str.upper 将字符串中所有小写字母全部转换为大写 str. swapcase 将字符串中大小写互换 str.title 将字符串首字母大写
举例: str.capitalize:将字符串第一个字母变大写
>>> a = 'abcd'
>>> str.capitalize(a)
'Abcd'
6.2 字符串的类型判断
函数 功能 str.isalnum 判断字符串是否全为字母或数字 str.isalpha 判断字符串是否全为字母 str.isdecimal 判断字符串是否只包含进制数字字符 str.isdigit 判断字符串是否全为数字(0-9) str.isidentifier 判断是否满足标识符定义规则 str.islower 判断字符串是否全部为小写 str.isnumeric 判断字符串是否只包含数字字符 str.isprintable 判断是否是可打印字符(例如制表符、换行符就不是可打印字符,但空格是) str.isspace 判断字符串是否是空白(空格、制表符、换行符等)字符,没有任何字符是不算是空白 str.istitle 判断是否为标题,即各单词首字母大写 str.isupper 判断字符串是否全为大写
举例: str.isalnum :判断字符串是否全为字母或 数字
>>> a = 'acv34'
>>> str.isalnum(a)
True
6.3 字符串的测试与查找
函数 功能 str.startswith 用来判断字符串str是否是以prefix开头 str.endwith 检查字符串str是否以suffix结尾,返回布尔值的True和False, suffix可以是一个元组(tuple),可以指定起始 start和结尾end的搜索边界 str.count 返回字符串str中子串sub出现的次数,可以指定从哪里开始计算(start)以及计算到哪里结束(end),索引从0开始计算不包括end边界 str.find 搜索字符串str中是否包含子串sub,如果包含,则返回sub的索引位置,否则返回"-1" str.rfind 返回搜索到的最右边子串的位置,如果只搜索到一个或没有搜索到子串,则和find()是等价的 str.index(x) 返回找到第一个x的下标 str.rindex 返回找到最后一个x的下标
str. startswith (prefix[, start[, end]])
str. endswith(suffix[, start[, end]])
6.4 字符串的填充与对齐
函数 功能 str.center 字符串居中,左右两边使用fillchar进行填充,使得整个字符串的长度为width str.ljust 左对齐 str. rjust 右对齐 str.zfill 用0填充在字符串S的左边使其长度为width。如果S前有正负号±,则0填充在这两个符号的后面,且符号也算入长度。 str. expandtabs 将字符串中的制表符扩展为若干个空格, tabsize默认为8
str.center (width[, fillchar])
str. ljust (width[, fillchar])
str. rjust (width[, fillchar])
str.zfill(width)
str. expandtabs ([tabsize])
6.5字符串的修剪
函数 功能 str. strip 移除左右两边的字符chars str. Istrip 移除左边的字符chars str. rstrip 移除右边的字符chars
str. strip([chars)
str. Istrip ([chars])
str. rstrip ([chars])
6.6 字符串的替换
函数 功能 str. replace 将字符串中的子串old替换为new字符串,如果给定count,则表示只替换前count个old子串。如果S中搜索不到子串 old,则无法替换,直接返回字符串S(不创建新字符串对象)。 str. expandtabs 将字符串str中的\t替换为一定数量的空格。默认N=8,注意, expandtabs(8)不是将t直接替换为8个空格 str.translate 实现的功能和Linux中的tr命令是类似的 static str. maketrans 生成一个字符一一映射的table,然后使用translate(table)对字符串str中的每个字符进行映射
注:maketrans(x[, y[, z]])中的x和y都是字符串,且长度必须相等。 如果maketrans(x[, y[, z]])给定了第三个参数z,则这个参数字符串中的每个字符都会被映射为None.
str. replace (old, new[, count])
str. expandtabs (N)
str.translate (table)
static str. maketrans (x, y[, z]])
6.7 字符串的拆分与组合
函数 功能 str. split 对str进行分割,根据sep对str进行分割,maxsplit用于指定分割次数如果不指定maxsplit或者给定值为"-1",则会从左向右搜索并且每遇到sep一次就分割直到搜索完字符串,如果不指定sep或者指定为None,则改变分割算法:以空格为分隔符,且将连续的空白压缩为一个空格. split分割后成为了列表 str. rsplit 与split()是一样的,只不过是从右边向左边搜索 str. splitlines 专门用来分割换行符,可以指定各种换行符 str. partition 从左边第一个sep进行分割 str. rpartition 从右边第一个sep进行分割 str. join(iterable) 将可迭代对象(iterable)中的元素使用str连接起来
str. split (sep=None, maxsplit=-1)
str. rsplit (sep=None, maxsplit=-1)
str. splitlines ([keępends=True])
str. partition (sep)
str. rpartition (sep)
注:partition()是后两个元素为空, rpartition()是前两个元素为空。
>>> print("sunny something some".partition("me"))
('sunny so', 'me', 'thing some')
>>> print("sunny something some".rpartition("me"))
('sunny something so', 'me', '')
>>> print("sunny".partition("me"))
('sunny', '', '')
>>> "sunny".join(('1','2','es'))
'1sunny2sunnyes'