《python字符串详解》

字符串

由0个或多个字符组成的有序字符数列。

  • 字符串的表示方法
    1.字符串由一对单引号或一对双引号表示。
    2.由一对三引号或三双引号表示多行字符串。
  • 字符编码
    1.ASCII编码:空格 < 数字 < 大写子母 < 小写字母
    2.Unicode码:
函数及其使用描述
chr(u)x为Unicode编码,返回其对应的字符
ord(x)x为字符,返回其对应的Unicode编码

在这里插入图片描述

  • 字符串操作符
操作符及其使用描述
x + y连接两个字符串x和y
n * x 或 x * n复制n次字符串x
X in s如果x是s的子串,返回True,否则返回False
  • 字符串格式化
    用于解决字符串和变量同时输出时的格式安排
    • 字符串format()方法的基本使用格式是:
    <模板字符串>.format(<逗号分隔的参数>)

    • <模板字符串>由一系列的槽组成,用来控制修改字符串中嵌入值出现的位置,其基本思想是将format()方法的<逗号分隔的参数>中的参数按照序号关系替换到<模板字符串>的槽中。槽用大括号{}表示,如果大括号中没有序号,则按照出现顺序替换。

    • 如果大括号中指定了使用参数的序号,按照序号对应参数替换,调用format()方法后会返回一个新的字符串,参数从0开始编号。
    在这里插入图片描述

  • format()方法的基本使用
    • format()方法可以非常方便地连接不同类型的变量或内容,如果需要输出大括号,采用{{表示{,}}表示},例如:
    在这里插入图片描述
    • format()方法中<模板字符串>的槽除了包括参数序号,还可以包括格式
    控制信息。此时,槽的内部样式如下:
    {<参数序号>: <格式控制标记>}

    • 其中,<格式控制标记>用来控制参数显示时的格式,格式内容如下:

:<填充><对齐><宽度>,.精度<类型>
引导符号用于填充的单个字符< ,左对齐 , > ,右对齐 , ^ ,居中对齐槽的设定输出宽度数字的千位分隔符,适用于整数和浮点数浮点数小数部分的精度或字符串的最大输出长度整数类型b,c,d,o,x,X 浮点数类型e,E,f,%

• <格式控制标记>包括:<填充><对齐><宽度>,<.精度><类型>6个字段,这些字段都是可选的,可以组合使用,这里按照使用方式逐一介绍

• <填充>、<对齐>和<宽度>是3个相关字段。

• <宽度>指当前槽的设定输出字符宽度,如果该槽对应的format()参数长度比<宽度>设定值大,则使用参数实际长度。如果该值的实际位数小于指定宽度,则位数将被默认以空格字符补充。

• <对齐>指参数在<宽度>内输出时的对齐方式,分别使用<、>和^三
个符号表示左对齐、右对齐和居中对齐。

•<填充>指<宽度>内除了参数外的字符采用什么方式表示,默认采用
空格,可以通过<填充>更换。
在这里插入图片描述
• <.精度>表示两个含义,由小数点(.)开头。对于浮点数,精度表
示输出的有效位数。对于字符串,精度表示输出的最大长度
在这里插入图片描述

  • 字符串的特殊字符—转义符
    “\b” 回退
    “\n” 换行(光标移动到下行首)
    “\r” 回车(光标移动到本行首)
字符串方法
  • 字符串类型的判断
    1、str.isdigit() 是否全为数字
    2、str.isdecimal() 是否只包含十进制数字字符
    3、str.isnumeric() 是否包含数字字符
    4、str.isalpha() 是否全为字母
    5、str.isalnum() 是否全为字母或数字
    6、str.islower() 是否全部为小写字母
    7、str.isupper() 是否全部为大写子母
    8、str.istitle() 是否为标题,即各单词首字母大写
    9、str.isspace() 判断字符串是否为空白(空格、制表符、换行符等)字符,没有任何字符是不算是空白
    10、str.isdentifier() 是否满足标识符定义规则
    11、str.isprintable() 是否是可打印字符
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 大小写转换
    1、str.lower() 全部转换为小写字母
    2、str.upper() 全部转换为大写字母
    3、str.capitalize() 转换为首字母大写,其他字母小写
    4、str.title() 转换为各单词首字母大写
    5、str.swapcase() 大小写互换(大写–>小写,小写–>大写)
    6、str.casefold() 转换为大小写无关字符串比较的格式字符串
    在这里插入图片描述
  • 字符串的填充与对齐
    1、str.center(width[, fillchar]) 将字符串居中左右两边使用fillchar进行填充, 使得整个字符串的长度为width。fllchar默认为空格。如果width小于字符串的长度,则无法填充直接返回字符串本身(不会创建新字符串对象)。

2、str.ljust(width[, fillchar]) 左对齐
3、str.rjust(width[, fillchar]) 右对齐
ljust()使用fillchar填充在字符串S的右边,使得整体长度为width。rjust()则 是填充在左边。如果不指定fillchar,则默认使用空格填充。如果width小于 或等于字符串S的长度,则无法填充,直接返回字符串S(不会创建新字符串对象)。

4、str.zfill(width) 前方补0
用0填充在字符串S的左边使其长度为width。如果S前有正负号+/-,则0填充在这两个符号的后面,且符号也算入长度。如果width小于 或等于S的长度,则无法填充,直接返回S本身(不会创建新字符串对象)。
5、str.expandtabs([tabsize]) 将字符串中的制表符扩展为若千个空格,tabsize默认为8
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 字符串的修剪
    1、str.strip([chars])
    2、str.lstrip([chars])
    3、str.rstrip([chars])
    分别是移除左右两边、左边、右边的字符chars
    如果不指定chars或者指定为None,则默认移除空白(空格、制表符、换行符)。
    唯一需要注意的是,chars可以是多个字符序列。在移除时,只要是这个序列中的字符,都会被移除。
    在这里插入图片描述
    在这里插入图片描述

  • 字符串的测试与查找
    1、str.startswith(prefix[, start[, end]])
    2、str.endswith(suffix[, start[, end]])
    endswith() 检 查字符串str是否以suffix结尾,返回布尔值的True和False。suffix可 以是一个元组(tuple)。可以指定起始start和结尾end的搜索边界。
    同理startswith() 用来判断字符串str是否是以prefix开头。

3、str.count (sub[, start[, end]])
返回字符串 str 中子串 sub 出现的次数,可以指定从哪里开始计算 (start) 以及计算到哪里结束 (end) , 索引从 0 开始计算,不包括 end边界。

4、str. find(sub[, start[, end]])
5、str. rfind(sub[, start[, end]])
6、str. index(sub[, start[, end]])
7、str. rindex(sub[, start[, end]])
find() 搜索字符串S中是否包含子串sub, 如果包含,则返回sub的索引位置, 否则返回 “-1”。 可以指定起始start和结束end的搜索位置。
index()find() 一样,唯一 不同点在于当找不到子串时,抛出ValueError错误。
rfind() 则是返回搜索到的最右边子串的位置,如果只搜索到一个或没有搜索到子串,则和 find() 是等价的。
同理rindex()
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 字符串的替换
    1、S.replace(old, new[, count])
    将了符串中的子串old替换为new方符串,如果给定count, 则表示只替换前count个old子串。 如果S中搜索不到子串old,则无法替换,直接返回字符串S(不创建新字符串对象)。
    2、S. expandLabs (N)
    将字符串S中的 \t 替换为一定数量的空格。默认N=8。注意,expandtabs(8) 不足将 \t直接替换为8个空格。例:
    ‘xyztab’ expandtabs() 会将 \t替换为5个空格,因为 “xyz” 占用了3个字符位。所以,在替换 "\t” 为空格时,会减掉 “t” 前面的字符数量。如果**"t”** 的前面正好没有字符,则直接将 “t” 替换为N个空格。另外,它不会替换换行符(\n\r)。
    3、S. lranslale(lable)
    4、static str. maketrans(x[, y[, z]])
    str.maketrans() 生成一个字符一 一-映射的 table, 然后使用translate(table) 对字符串S中的每个字符进行映射。
    translate() 实现的功能和Linux中的tr命令是类似的。
    注意,maketrans(x[, y[ z]) 中的x和y都足字符串,且长度必须相等,color_FFFFFF,t_70)如果maketrans(x[, y[, z]) 给定了第三个参数z,则这个参数字符串中的每个字符都会被映射为None
  • 字符串的拆分与组合
    1、S. split (sep=None, maxsplit=-1)
    2、S. rsplit (sep=None, maxsplit= -1)
    3、S. splitlines ([keepends=True])
    都是用来分割字符串,并生成一个列表。
    split() 根据sep对S进行分割,maxsplit用 于指定分割次数,如果不指定maxsplit或者给定值为 “-1”,则会从左向右搜索并且每遇到sep一次就分割直 到搜索完字符串。如果不指定sep或者指定为None,则改变分割算法:以空格为分隔符,且将连续的空白压缩为一个空格。
    rsplit()split() 是- 样的,只不过是从右边向左边搜索。
    splitines() 用来专 门用来分割换行符。虽然它有点像 split(’\n’)plit(’\r\n’) 但它们有些区别。
    splitines() 中可以指定各种换行符,常见的是 \n\r\r\n。 如果指定 keependsTrue, 则保留所有的换行符。

4、S. partition (sep)
5、S. rpartition (sep)
搜索字符串S中的子串sep,并从sep处对S进行分割,最后返回一个包含3元素的 元组sep左边的部分是元组的第一 一个元素,sep自身是元组的二个元素,sep右边是元组的第三个元素。
partition(sep) 从左边第一 个sep进行分割,rpartition(sep) 从右边第一个sep进 行分割。
如果搜索不到sep,则返回的3元素元组中,有两个元素为空。partition() 是后两个元素为空,rpartition() 是前两个元素为空。
6、S. join(iterable)
将可迭代对象(iterable)中的元素使用S连接起来。注意,iterable中必须全 部是字符串类型,否则报错。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值